STM 32 串口接收配置

本文详细介绍了STM32串口接收的配置流程,包括调用HAL_UART_Init和HAL_UART_Receive_IT函数开启接收中断。当数据接收时,会触发中断服务函数,读取USARTx_RDR寄存器的值。在实际应用中,通常在中断服务函数HAL_UART_IRQHandler中处理接收。文中还提醒在HAL_UART_Receive_IT回调前中断会被关闭,需要再次调用以重新开启。
摘要由CSDN通过智能技术生成

串口接收流程:
串口接收的一部分流程与发送时的配置很类似,具体如下所示:

这里写图片描述
其中第六步使能的是接收器,第七步是接收中断的使能位,接收中断即在接收到数据后通过产生中断来进行相应的处理。

具体配置过程:
首先:调用HAL_UART_Init函数
然后:HAL_UART_Receive_IT函数开启接收中断

当串口接收到数据时:
1.USARTx_ISR的RXNE位置1。表明以为寄存器的内容已经传输到RDR寄存器。已经接收到数据并且等待读取。
2.如果开启了接收数据中断,则会产生中断,程序上会执行中断服务函数。
3.读取USARTx_RDR寄存器的值,该操作会自动将RXNE位清零,等待下次接收后置位。

具体配置过程:

首先:利用HAL_UART_GET_FLAG 标志位或者使用_HAL_UART_GET_IT_SOURCE判断中断标志位。
然后:进入中断服务函数USART_IRQHandler();
最后:利用HAL_UART_Receive函数读取接收数据。

最后,对于配置过程再来一个最后总结,如下图所示:

这里写图片描述

但在实际应用中,我们通常会在中断服务函数中调用,HAL库中的HAL_UART_IRQHandler即通用中断服务函数来进行操作。然后通用中断服务函数会判断中断的类型从而再次调用不同的函数来处理中断。具体过程如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值