标题: 关于串口接收问题的一点小看法 [打印本页]

作者: xuwei    时间: 2015-6-13 16:14
标题: 关于串口接收问题的一点小看法




串口,似乎是一个司空见惯的代名词,但是我遇到了一个问题直到昨天才解决,那就是怎么完整的接收接受的数据而不丢失呢?串口都会用,都说很简单,然而当你去做的时候你才发现并不是想的那样简单那,当然可能是我笨了点,但是我解决了,怎怎么处理呢?现在看来很简单了,用FIFO来解觉这个问题就简单了,不用程序单单从逻辑上就是通的,实现起来也不难,怎么实现呢?很好搞,首先在内存中开辟一块缓存区,当然越大越好,只不过要根据内存的容量来权衡,我的那个系统内存很吃紧,因为覆盖了线程的堆栈,非常的耗费RAM用量,开辟完了内存,然后定义两个指针,指向这个缓存,一个用来写么一个用来读,典型的FIFO,这下好了,你可以接受N个数据包,操作系统拿出一给线程监听串口数据,一旦有数据包,那么两个指针必定不相等,这样用变量来记录字节数,用指针来访问FIFO,就实现了,我测试过了,没有问题,很稳定,而且不会错过一个字节哦!尤其适用于不定长数据的处理,因为定长非常好高,只要匹配就可以,不定长却没那么简单,就要用这个FIFO,当然如果你没由运行操作系统,那么你还是一样的操作只是你要不断地去查询是否有数据到来,串口是以中断 方式接受。


作者: 3263065307    时间: 2016-5-5 18:58
大神为什么串口接收到的数据总是不完整的比如1234456总会出现少一些数据的情况比如会出现12346或者123等等的情况求帮助我的qq3263065307谢谢大神了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1