STMCU小助手
发布时间:2021-7-16 16:42
|
串口通信第一步—配置双方串口初始化 stm32 串口初始化我就不详细说了,因为在许多地方都能找到配置源码,而且今天主要讲的是串口通信处理数据的思路,了解了之后,不论什么板子(51or 430)都可以使用这个逻辑 接收中断配置 以下是一段我使用到的stm32和接收蓝牙数据的接收中断 下面的代码是: 串口接收代码。
分开讲解代码: u8 USART1_RX_BUF[USART_REC_LEN]; 这句是接收缓存,暂时存放你所接收到的信息,他的长度必须要大于串口每次接收到完成数据的长度 u16 USART1_RX_STA; 接收状态:RXSTATE 这个是很重要的一个点,他的最高一位或者几位用来保留接收数据的状态,剩下的用来保留接收数据的长度信息。一般最高1位保存结尾信息,默认置0,在接收到我们定义的结尾标志码的时候把他置1(表示接收完成一组数据,等待处理),然后在每次进入到接收中断里面的时候先判断这个位是不是已经置位了,如果已经置位了表示缓存里面已经有一组数据未处理,则不会继续接收下面的数据。 具体的判断代码如下
接收完成后数据的处理 数据处理放在主函数里面处理,可以设定一个扫描周期,判断STA的最高位是不是被置位,置位了之后就执行数据处理函数。 代码如下
串口接收的处理函数基本上就这些内容,按照这个方式来写,基本上所有的串口通信都可以套用,稳定又方便!!! |
微信公众号
手机版