STM32的串口中断详解

目录

中断配置

中断服务函数

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

2. 中断服务函数 

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

extern u8 USART_RX_BUF[USART_REC_LEN]

extern u16 USART_RX_STA


中断配置

使能接收中断

STM32的串口中断详解_第1张图片

STM32的串口中断详解_第2张图片

STM32的串口中断详解_第3张图片


中断服务函数

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

2. 中断服务函数 

STM32的串口中断详解_第4张图片3. 可以选择的串口中断类型 

STM32的串口中断详解_第5张图片

此处定义

STM32的串口中断详解_第6张图片

其他文件中的声明

STM32的串口中断详解_第7张图片


extern u8 USART_RX_BUF[USART_REC_LEN]

最大接收字节数

STM32的串口中断详解_第8张图片


extern u16 USART_RX_STA

接收状态标记

extern u16 USART_RX_STA
bit15 bit14 bit13~0
接收完成标志 接收到0x0D标志 接收到的有效数据个数

0x0D是回车的ASCII码

0x0A是换行的ASCII码

若电脑发送了一串数据,则我们需要在电脑发送这串数据的最后加上0x0D

STM32分析接收到的数据,如果读到0x0D,则将bit14置1

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,以便下一次继续接收

STM32的串口中断详解_第9张图片

STM32的串口中断详解_第10张图片

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

STM32的串口中断详解_第11张图片

你可能感兴趣的:(硬件,stm32)