10610浏览
查看: 10610|回复: 4

[讨论] 串口缓存满了以后,传入的数据是会更新还是丢失?

[复制链接]
本帖最后由 云水尧 于 2015-2-10 14:28 编辑

我用MEGA通过Serial3接了一个GPS模块,GPS模块总是在发送数据,可我不是每时每刻都在读取GPS信息。串口缓存满了以后,传入的数据是会更新还是丢失?图1
那么问题好像就出现了:
1、Serial3会不断地接受数据直到串口接收buffer填满,如果我仍然没有读出Serial3的值的话,那么GPS模块后来发送的数据到哪去了?是从Serial3串口接收buffer的开头开始覆盖掉原来的数据呢?还是这些数据就丢失不见了?
2、GPS模块在不断发送数据,但是Serial3串口接收buffer满了以后,如果不再接受GPS模块传进来的数据的话,GPS模块要发送的数据就会存在自己的发送buffer中,如果自己发送buffer也填满了话,再获取到的GPS信息是会替换掉发送buffer里面的数据呢?还是直接丢失了呢?

谢谢!!!



hnyzcj  版主

发表于 2015-2-14 15:54:31

e ,GPS模块我还没有玩过。等我以后玩的时候再想你请教。
回复

使用道具 举报

Youyou  初级技匠

发表于 2015-2-14 20:01:45

arduino的串口接收采用环形缓冲器,大小为64字节,当环形缓冲区爆满后,将直接丢弃数据,不再接收。
可看下arduino-1.0.5-r2\hardware\arduino\cores\arduino\HardwareSerial.cpp的源码。
回复

使用道具 举报

hnyzcj  版主

发表于 2015-2-14 20:48:00

回头我也来看看
回复

使用道具 举报

云水尧  初级技师
 楼主|

发表于 2015-3-1 21:13:02

Youyou 发表于 2015-2-14 20:01
arduino的串口接收采用环形缓冲器,大小为64字节,当环形缓冲区爆满后,将直接丢弃数据,不再接收。
可看下 ...

新年快乐!谢谢你,我去好好研究研究看!
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail