当前位置: 代码迷 >> 单片机 >> 串口读写有关问题
  详细解决方案

串口读写有关问题

热度:25   发布时间:2016-04-28 15:46:52.0
串口读写问题
如果将pc串口缓冲区大小设为512字节,从下位机接收数据,再用ReadFile()去读数据。如果先读取30个字节的数据,然后再读30个字节数据,那么这30个数据是从什么地方开始读的??缓冲区头还是跟在前30个数据之后??再如果下位机发送数据很快,上位机来不及处理数据,那么数据是不是会丢失??

------解决方案--------------------
楼主描述不清。
1、你PC发送的波特率是多少?
2、一帧数据量多大?
3、帧与帧之间时间间隔多少?
4、既有上位机发送数据,又有上位机发送数据,流程到底是怎么样的?


再说你的问题,串口先接收30,时间T之后,再接收30,这个取决你2次的时间间隔是多少,如果时间T小于串口接受的2个bit的间隔,没有问题,否则将丢掉数据。

如果数据量小,才512字节,可以一下子接受完再做处理。
------解决方案--------------------
只要不关闭设备就是接着上次往下读,串口是字符设备,不具有存储能力,如果读设备频率不满足要求就会丢包,可参考楼上说的,如果不想丢包,频率结合波特率决定
  相关解决方案