你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32的串口中断详解

[复制链接]
STMCU小助手 发布时间:2022-12-24 17:39
中断配置
使能接收中断

903ab95da2174bcca6297393946b16da.png

18e37aca59ce4c5a847ff017a2e0078f.png

081ce893dac94d74be8a6520cd978546.png


中断服务函数

1. 中断服务函数名称查找

81fb0d3daac745d68f635503703e87d2.png


2. 中断服务函数

ac44755d6678490ab561cf7d6d0956ce.png

3. 可以选择的串口中断类型

f255427f0033475f999705c90dc69e00.png

此处定义

6d8447ee109f47e387e56167afb56170.png

其他文件中的声明

5228b5d1dbff492c89bc1da6dc6315ed.png


extern u8 USART_RX_BUF[USART_REC_LEN]
最大接收字节数

bba809f9708649a493732cfb4c0876f4.png

extern u16 USART_RX_STA

接收状态标记

)Y04C4PNX~6I@U2QT6(HE6G.png


0x0D是回车的ASCII码
0x0A是换行的ASCII码
若电脑发送了一串数据,则我们需要在电脑发送这串数据的最后加上0x0D
STM32分析接收到的数据,如果读到0x0D,则将bit14置
STM32分析接收到的数据,如果读到0x0A,则将bit15置1
这里的0x0D和0x0A不会给bit13~0加1
外部函数只需要访问USART_RX_STA的bit15即可
若USART_RX_STA的bit15为1,则已经完成了一次接收了,而且我们知道,数据的长度是bit13~0
因此,我们只需要按照bit13~0到USART_RX_BUF中去读取即可
读取完成后,我们再把USART_RX_STA全部清0,以便下一次继续接收

4f89ba18df1c4a98bc6f90f71cc69cfe.png

1ce18e9efbda45c3a23dd4f27c1d9976.png

使用电脑发送数据时,记得勾选发送新行,这样就会以0x0D和0x0A结尾

fc61319dcc164c7ea240d16ad3e67ca3.png

————————————————
版权声明:CodeForCoffee


收藏 评论0 发布时间:2022-12-24 17:39

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版