源码
片段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的使用你可以轻松的实现开启接收进行数据接收或者关闭接收进行数据处理