欢迎光临散文网 会员登陆 & 注册

stm32 串口中断读取一帧数据(中断接收不定长数据)

2021-06-07 10:15 作者:GXTon_阿通  | 我要投稿

单片机开发板上的例程中对串口讲解大都很简单.

通常只会讲解收发操作.就是接收一个字符,然后把这个字符发送出去.

但是在实际应用串口中通常是用于接收指令或发送指令的.

这就需要用到"帧"的概念了.

其实说的更白话一点,就是接收一条指令.这里一帧就是一条指令.

通常接收一帧,如果有包头和包尾的数据还好,就是弄一个环形的缓存,无论串口传过来是什么,统统接收,然后在根据包头和包尾去摘出其中的一条完整数据,但是如果一个器件没有包头或包尾,并且传过来的数据是不定长的?,这时就需要用到接收一帧的功能了.

这个功能自己编写起来是比较麻烦的,stm32单片机集成了硬件上判断一帧的功能(IDLE).

用起来也很简单,(我这里用了条件编译)

首先配置串口的引脚:

然后配置串口功能:(这里也打开了串口中断)

注意:上面打开中断,用了两条语句,

配置串口的nvic:

经过上面这些,串口的功能基本配置好了.

下面就是串口的中断函数了.

参考文档:

https://blog.csdn.net/qq_43765237/article/details/107599234

http://www.voidcn.com/article/p-wtykumrm-bag.html


stm32 串口中断读取一帧数据(中断接收不定长数据)的评论 (共 条)

分享到微博请遵守国家法律