STM32HAL——USART系列

本文详细介绍了STM32的USART硬件控制(RTS/CTS)、中断控制以及HAL库中的DMA传输。重点讲解了DMA控制器的工作阶段、配置及在STM32F1和F4中的差异,并提供了CubeMX配置示例。还提到了实验记录和如何修改相关函数以适应不同需求。

UART

硬件控制(RTS/CTS)

RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。

CTS (Clear ToSend,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。

两者可在 HAL 中选择是否启用。(由硬件接口判断,并且注意在串口监视软件中设置相应的 Hardware Control )由于是硬件接口,无需修改软件层面。

中断控制

涉及 USART 的中断事件表

Interrupt Event Event Flag Enable Control Bit
TransmitData Register Empty TXE TXEIE
Clear To Send (CTS) flag CTS CTSIE
Transmission Complete TC TCIE
Received Data Ready to be Read RXNE RXNEIE
Overrun Error Detected ORE RXNEIE
Idle LineDetected IDLE IDLEIE
Parity Error PE PEIE
BreakFlag LBD LBDIE
Noise Flag, Overrun error and Framing Error in multi buffer communication NF or ORE or FE EIE

以上任意一个中断事件发生,都会进入 USARTX_IRQHandler 函数。这里需要用户自己判断标志位(具体可以参考 HAL 库做法)并处理相应中断,然后清除标志位

HAL

HAL 库实现 UART_HandleTypeDef 作为一个 UART 实例。

总的传诵方式分为三种:DMA、IT、阻塞传输。

阻塞传输:

HAL_UART_TransmitHAL_UART_Receive是阻塞传输。两个函数都会传入一个Size,为接受/发送数据的长度。待传送字符串传递完后执行下一行代码。

阻塞传输注意超时设置,这个会由于硬件关系而有不同,数量级在千级别。

中断传输:

HAL_UART_Transmit_ITHAL_UART_Receive_IT是非阻塞传输。 HAL 开启中断传送,并将 UART 设置位忙碌状态(供其余函数查询是否传输完毕)。

中断传输会调用回调函数。HAL_UART_TxCpltCallback 、<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值