【发布时间】:2016-01-01 04:19:14
【问题描述】:
我正在使用 QSerialPort 在 Qt5.5 (windows) 中发送接收数据,除了在一种情况下,当发送回的数据包含 0x11 时,一切都按预期工作。我看到这是一个特殊的 ascii 值,但想将其作为原始字节读入。 我的设置如下:
setBaudRate(QSerialPort::Baud115200);
setDataBits(QSerialPort::Data8);
setStopBits(QSerialPort::OneStop);
setFlowControl(QSerialPort::SoftwareControl);
setParity(QSerialPort::NoParity);
稍后...
open(QIODevice::ReadWrite);
我在连接到 readyRead() 的插槽中阅读:
buffer_.append(readAll());
其中 buffer_ 是一个 QByteArray。
一个示例数据包是:
0xBF 0x00 0x00 0x00 0x00 0x04 0x11 0x00 0x02 0x70
以及我将收到的数据包:
0xBF 0x00 0x00 0x00 0x00 0x04 0x00 0x02 0x70
【问题讨论】:
-
尝试禁用流量控制 - QSerialPort::NoFlowControl