STM32串口通信接收的数据包无包头包尾长度不固定,简单思路分析

1.数据包和数据包之间是有时间间隔的,我们需要开启定时器对数据包之间间隔设置进行定时,超过一定时间间隔,进入中断同时标志位,表示数据接受完成。

2.在接收中断里面,我们需要每接收一个byte将定时器清零

3.以9600波特率为例,每位发送时间0.14ms,那么发送一个字节是1.4ms(包含起始位和1个停止位),那么当我们把数据帧间时间设置10ms肯定能保证这个数据包已经发完了。

4.这个方法也叫串口接收数据包超时接收。

 

你可能感兴趣的:(stm32,嵌入式硬件,单片机)