找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2318|回复: 1
收起左侧

关于串口接收问题的一点小看法

[复制链接]
ID:82781 发表于 2015-6-13 16:14 | 显示全部楼层 |阅读模式




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

回复

使用道具 举报

ID:114742 发表于 2016-5-5 18:58 | 显示全部楼层
大神为什么串口接收到的数据总是不完整的比如1234456总会出现少一些数据的情况比如会出现12346或者123等等的情况求帮助我的qq3263065307谢谢大神了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表