C++ QSerialport通过COM端口与设备通信(使用USB)

C++ QSerialport通过COM端口与设备通信(使用USB),c++,qt,C++,Qt,我有一个关于Qt的问题。在Qt应用程序中,我将数据包从PC发送到DSP板,因此PC到DSP板的通信工作正常,DSP板也发送3个不同数据包大小的数据包。通过COM5端口进行通信 所以我只是把终端(Tera术语)连接到COM5端口,看看我们从DSP板上得到的数据包。我在Tera术语中观察到的是,有时我们不会一次得到完整的数据包,这意味着完整的数据包在两个时间间隔内出现(E1和E9)E1\x01\xFE\x14\x05\x05\xC1Q\x15\t\x02U\x02\xE6\x01\x01\x02\x

我有一个关于Qt的问题。在Qt应用程序中,我将数据包从PC发送到DSP板,因此PC到DSP板的通信工作正常,DSP板也发送3个不同数据包大小的数据包。通过COM5端口进行通信

所以我只是把终端(Tera术语)连接到COM5端口,看看我们从DSP板上得到的数据包。我在Tera术语中观察到的是,有时我们不会一次得到完整的数据包,这意味着完整的数据包在两个时间间隔内出现(E1和E9)
E1\x01\xFE\x14\x05\x05\xC1Q\x15\t\x02U\x02\xE6\x01\x01\x02\xC2\x01\x01\xE9
)。因此,在1毫秒的时间里,我得到
E1\x01\xFE\x14\x05\x05\xC1Q
,在1毫秒之后,我得到剩余的
\x15\t\x02U\x02\xE6\x01\x01\xC2\x01\x01\xE9。
所以我的问题是,我希望完整的数据包从DSP板发送到PC。端口配置是正确的波特率115200,其他与端口配置相关的东西是波特率115200完美的我想知道我的问题的原因是什么。
请告诉我问题出在哪里

串口对“数据包”一无所知。它们位于OSI模型的最底层,您需要更高级别的协议将字节分组到数据包中。有很多方法可以做到这一点,如果它是纯二进制数据,那么您首先要发送一个长度字节,允许接收器对数据包中的字节进行计数。您往往需要一个特定的开始字节来指示数据包的开始,帮助您同步发射机和接收机。校验和在如此高的波特率下是明智的,但是你需要更多的协议来重新传输数据,你倾向于重新发明TCP。实际上,我的问题是能够从设备获得完整的数据包,但有时会发生的是完整的数据包在两个时间间隔内出现,所以我在term term terminal中观察到,所以我想知道为什么有时它显示完整的数据包,有时显示不完整的数据包。但是,设备发送完整的数据包。@shashi,串行端口不能保证一起发送的数据字节也会一起接收。您只能接收一部分数据、一个“完整数据包”,甚至可以同时接收几个“数据包”。@shashi,因此您必须:1。等待开始'(E1'.2.等待并读取字节,直到收到'E9')。3.转到1。