Bonjour à tous,
je suis en train de faire des essais de communication sur un port COM. Je sais que mon port fonctionne correctement parce que lorsque j'utilise "termite" (c'est une console), mes données sortent et rentrent sans problème.
J'ai d’abord essayer de tester la réception de données, mais rien alors je me suis concentré sur l'envoi de données pour voir si j'obtenais quelque chose, voici le petit bout de code :
Je sais que mon port COM5 fonctionne, puisque si je laisse mon terminal (console) ouvert, je ne rentre pas dans le "if" du "serial.open".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 serial.setPortName("COM5"); // Si le port est ouvert je le configure if(serial.open(QIODevice::ReadWrite)) { if(!serial.setBaudRate(QSerialPort::Baud115200)) { std::cout << "Error in Baud Rate setting"; } if(!serial.setDataBits(QSerialPort::Data8)) { std::cout << "Error in Nb bits setting"; } if(!serial.setParity(QSerialPort::NoParity)) { std::cout << "Error in No parity setting"; } if(!serial.setStopBits(QSerialPort::OneStop)) { std::cout << "Error in Stop bit Nb setting"; } if(!serial.setFlowControl(QSerialPort::NoFlowControl)) { std::cout << "Error in No flow control setting"; } QByteArray ba; ba.resize(1); ba[0] = 0x36; while(1) { serial.flush(); serial.write(ba); // J'envoie un octet };
Et je sais que rien ne sort, parce que je regarde à l'oscilloscope.
Est-ce que quelqu'un saurait ce que j'ai oublié ?
Merci d'avance
Partager