日期:2014-05-16  浏览次数:20599 次

linux串口编程的问题,大家给我点思路和指导
最经在用linux下串口编程遇到了一些问题,就是在接收上遇到了一些问题,设置VMIN为8,VTIME为0,应为不知道什么时候串口会发送数据上来,所以用了一个线程一直读这个串口,每次读8个字节的数据
现在遇到的现象是一次性发送24个节的数据,接收到的是24个字节,但是会丢掉其中的一些数据,还有一些数据是重复的

丢掉的数据和重复的数据是有规律的
输入串口的数据是: 10 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 10 21 22 23 24 25 26 27

ARM开发板接收到的数据是10 21 22 23 24 25 26 27 10 21 22 23 24 25 26 27 10 21 22 23 24 25 26 27
请问各位这是怎么回事,能提供下解决思路吗




------解决方案--------------------
如果你的程序写的对的话,应该不会出现这种问题,贴程序吧,贴接收部分就行了。
我估计问题可能在read时,或者是那个buffer的读写上。

------解决方案--------------------
一次性把数据全部收下来
我以前做过一个,等待接收,我直接收50个,反正50以内都能收回来
等待时间设置为1,延迟感觉不出来,有数据就全部收,一般不会漏