串口缓存满了以后,传入的数据是会更新还是丢失?
2015-02-101.8万
AI 快速预览详细
本文讨论了在使用MEGA通过Serial3连接GPS模块时,串口接收缓存满后的数据处理机制。当串口接收缓存满后,新数据会从缓存的开头开始覆盖旧数据,而不是直接丢失。为了避免数据丢失,建议定期读取串口数据。文章还探讨了GPS模块发送缓存满的情况,指出如果发送缓存也满,新数据会替换掉发送缓存中的数据。
|
我用MEGA通过Serial3接了一个GPS模块,GPS模块总是在发送数据,可我不是每时每刻都在读取GPS信息。 ![]() 那么问题好像就出现了: 1、Serial3会不断地接受数据直到串口接收buffer填满,如果我仍然没有读出Serial3的值的话,那么GPS模块后来发送的数据到哪去了?是从Serial3串口接收buffer的开头开始覆盖掉原来的数据呢?还是这些数据就丢失不见了? 2、GPS模块在不断发送数据,但是Serial3串口接收buffer满了以后,如果不再接受GPS模块传进来的数据的话,GPS模块要发送的数据就会存在自己的发送buffer中,如果自己发送buffer也填满了话,再获取到的GPS信息是会替换掉发送buffer里面的数据呢?还是直接丢失了呢? 谢谢!!! |





可看下arduino-1.0.5-r2\hardware\arduino\cores\arduino\HardwareSerial.cpp的源码。