正点原子串口算法解析-定时器+数组长度判断

  • Post author:
  • Post category:其他




源码

片段1

在这里插入图片描述

片段2

在这里插入图片描述

片段3

在这里插入图片描述



解析


片段1的作用

开启一个10ms的定时器


片段2的作用

每10毫秒置位接收标志位且关闭定时器


片段3的作用和详解

代码第38行

用res变量接收数据

从代码第39行开始看

接收标志位不允许接收(不为0) 下面的所有代码都不会运行

如果接收标志为允许接收(0) 且数组没有存满 就打开定时器且一直接收数据


那么这样下去就会有两个情况

情况1 我数据接满600字节会标记接收完成

情况2 每10ms定时器会自动标记接收完成



USART3_RX_STA的作用

作用1 用于数组长度计数

作用2 用于接收的标志位

一个变量达到了两个变量的作用



结论

所以这个算法

每次接收到600字节数据会保存数据用于你的二次处理

每10ms也会保存数据用于你的二次处理

且如果你不手动去清空接收标志位 他只会接收一次数据

通过USART3_RX_STA的使用你可以轻松的实现开启接收进行数据接收或者关闭接收进行数据处理



版权声明:本文为lllmeimei原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。