【问题标题】:qserialport data missing while reading from port but returns 9 bytes available从端口读取时缺少 qserialport 数据,但返回 9 个可用字节
【发布时间】:2014-08-11 04:28:25
【问题描述】:

使用qextserialport函数readdata从端口读取时发生数据丢失

例如 serialobj->bytesavailable 返回 9 个字节,而 serialobj->readData 仅从 pic 微控制器返回两个字符

【问题讨论】:

  • 在 readData() 的文档中,我看到 readData 返回一个整数。 (从设备读取最多 maxSize 个字节到数据中,并返回读取的字节数,如果发生错误,则返回 -1。)。你有什么价值?
  • 我有收到的总字节数,
  • char arr_cReadbuffer[1024]; int nBytesAvailable = m_serialportCoProcessor->bytesAvailable(); qDebug() 0 ) { /* 读取可用字节 */ int nBytesReceived = m_serialportCoProcessor->readData(arr_cReadbuffer,nBytesAvailable); qDebug()
  • 你应该编辑你的帖子,在适当的标签之间添加你的代码,因为它不可读。

标签: c++ qt qt4 qtserialport qextserialport


【解决方案1】:

从 cmets 判断,您正试图将接收到的字节打印到控制台。显然,您尝试打印的某些字节是不可打印的,并且不会产生视觉输出。

也许您想查看以十六进制为基数的字节值:

qDebug() << serialObj->readData().toHex();

【讨论】:

  • @TeamSwatkats 这些字节不可打印,因此打印它们不会产生可见的输出。
  • 我怎样才能收到所有的字节有什么办法
  • @TeamSwatkats 您已收到字节。他们在那里。您只是看不到它们,因为它们不可打印。这有什么难理解的?并非所有字节都对应于可打印字符。
猜你喜欢
  • 2019-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多