串口通信的一般思路是:先接收数据,然后处理数据,并在数据处理之后再次等待接收新的数据。但这种方法的缺点是,在串口高速率大信息量通信时,会出现丢失数据的情况。
丢失数据的原因是数据接收和数据处理再同一个线程中,如果数据处理的时间太长,则来不及接收的数据只能暂存在缓存中。因此,一旦缓存满了,新到的数据就会冲刷掉未来得及接收的数据,从而造成数据的丢失。因此,只是增加缓存的容量不能解决数据丢失的根本问题。
解决思路:
数据接收与数据处理分别放在两个线程中进行;
数据接收线程:接收数据并将接收到的数据存入数据池中;
数据处理线程:从数据池中读取数据和处理数据;
注意:
串口通信丢失数据结局方案——C#
最新推荐文章于 2025-07-26 07:48:30 发布