专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 嵌入开发

串口通信数据丢失有关问题

发布时间:2010-06-13 21:49:08 文章来源:www.iduyao.cn 采编人员:星星草
串口通信数据丢失问题
PC端的串口通信用的是Win_QextSerialPort类(sourceForge上下的)操作串口,开发板上调用的linux系统函数读写串口
PC端写command:int i = comPort->write(str.toAscii().constData(), str.length());
返回值为 -1,但是开发板(linux2.6.14)上能正确的读到str.toAscii().constData();
开发板上接到命令后,开始回发data;
开发板端发Data:char sendData[128];
sprintf(sendData, "%d", data);
int length_write = write(uart_fd, sendData, (strlen(sendData)));
  printf("length_write=%d\n", length_write);打印的length_write显示write成功。
但是收端(PC)上:if(comPort->isReadable()){
  memset(buff, 0, 1024);
  bytesRead = comPort->readData(buff, comPort->bytesAvailable());
  }
  收到的数据长度bytesRead总是2,远远小于length_write。
  串口线是,UART转USB的。
有谁知道是什么原因啊,PC->开发板的数据(命令)没有丢失,而反向的时候数据就丢了。读写调用的都是封装好的API,
应该没什么问题。是数据线的问题么?

------解决方案--------------------
探讨
PC端的串口通信用的是Win_QextSerialPort类(sourceForge上下的)操作串口,开发板上调用的linux系统函数读写串口
PC端写command:int i = comPort->write(str.toAscii().constData(), str.length());
返回值为 -1,但是开发板(linux2.6.14)上能正确的读到str.toAscii().co……

------解决方案--------------------
发送和接受的波特率问题还是?
------解决方案--------------------
可能是linux缓冲问题吧。
------解决方案--------------------
应该是波特率问题,有没有FIFO暂存数据呢
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: