首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 嵌入开发 >

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

2012-03-07 
串口通信数据丢失问题PC端的串口通信用的是Win_QextSerialPort类(sourceForge上下的)操作串口,开发板上调

串口通信数据丢失问题
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暂存数据呢

热点排行