串行端口上的失真答案
Distorted answers on serial port
所以..我正在使用这段代码从 powertek pa4400a 读取一些信息,有时我可以毫无问题地读取它,但有时我会得到奇怪的答案。我什至无法理解字符是什么意思。
QSerialPort asd;
asd.setBaudRate(QSerialPort::Baud19200);
asd.setDataBits(QSerialPort::Data8);
asd.setFlowControl(QSerialPort::NoFlowControl);
asd.setParity(QSerialPort::NoParity);
asd.setStopBits(QSerialPort::OneStop);
asd.setPortName("ttyUSB0");
asd.open(QSerialPort::ReadWrite);
asd.write(com);
asd.waitForReadyRead(10000);
QString ans = asd.readAll();
ans 字符串应如下所示:
"00.00E+0; 00.00E+0;+00.00E+0; 00.00E+0; 000:00:00;<<END OF DATA>>"
但我得到这样的结果:
"\xFB"
或任何其他不正确的内容。
我确实得到了很多次正确答案,但发生了一些事情,我无法再阅读信息了。
这里的问题是我向其发送命令的机器使用的是 HardwareControl,但我使用的是 NoFlowControl,这搞乱了我的答案。
所以..我正在使用这段代码从 powertek pa4400a 读取一些信息,有时我可以毫无问题地读取它,但有时我会得到奇怪的答案。我什至无法理解字符是什么意思。
QSerialPort asd;
asd.setBaudRate(QSerialPort::Baud19200);
asd.setDataBits(QSerialPort::Data8);
asd.setFlowControl(QSerialPort::NoFlowControl);
asd.setParity(QSerialPort::NoParity);
asd.setStopBits(QSerialPort::OneStop);
asd.setPortName("ttyUSB0");
asd.open(QSerialPort::ReadWrite);
asd.write(com);
asd.waitForReadyRead(10000);
QString ans = asd.readAll();
ans 字符串应如下所示:
"00.00E+0; 00.00E+0;+00.00E+0; 00.00E+0; 000:00:00;<<END OF DATA>>"
但我得到这样的结果:
"\xFB"
或任何其他不正确的内容。
我确实得到了很多次正确答案,但发生了一些事情,我无法再阅读信息了。
这里的问题是我向其发送命令的机器使用的是 HardwareControl,但我使用的是 NoFlowControl,这搞乱了我的答案。