- 博客(8)
- 收藏
- 关注
原创 STM32F407的通信恢复处理(Usart_DMA)
错误中断的恢复方法,适用但不局限于通信设备的错误复位导致另一台设备的通信错误挂起,恢复通信
2025-10-14 17:59:29
535
原创 SPI-HAL库全双工收发函数设计剖析
本文详细解析了HAL库中SPI全双工收发函数HAL_SPI_TransmitReceive_DMA的实现机制。函数首先检查DMA句柄配置、SPI方向模式等参数,验证SPI状态机是否处于就绪或接收忙状态。接着锁定SPI句柄防止并发访问,初始化收发缓冲区指针和计数器,并根据CRC校验设置决定是否复位CRC计算。函数通过配置不同的DMA传输完成回调来处理全双工模式,先后启动接收和发送DMA通道,最终使能SPI外设和DMA请求。整个过程严格遵循状态机机制,通过临时变量保存当前SPI状态,确保数据传输的可靠性。
2025-08-18 11:23:14
1184
原创 基于状态机实现IIC_DMA无竞争收发——STM32
本文介绍了如何在STM32上利用DMA实现IIC总线的主从通信并发处理。通过配置DMA优先级(发送高于接收)和中断嵌套优先级,实现了读写操作的并行处理。文章详细说明了状态机设计方法,使用枚举体模拟IIC总线状态,并通过标志位控制读写流程。关键点包括:1)在main函数初始启动接收并开启定时器中断;2)设计状态机处理函数管理读写优先级;3)通过回调函数完成状态切换。该方法有效避免了数据竞争,实现了IIC总线的高效并发通信。
2025-08-10 09:00:00
660
原创 STM32F1串口初始化流程
本文详细解析了STM32F1 HAL库串口通信的初始化流程,主要包括三个关键步骤:首先通过HAL_UART_MspInit函数初始化串口和GPIO时钟;其次配置GPIO为复用功能模式,其中TX引脚设为复用推挽输出,RX引脚设为输入模式;最后通过MX_USART2_UART_Init函数配置串口参数,包括波特率、数据位、停止位等。文章还特别强调了过采样方式的选择(F1仅支持16倍)、硬件流控制的适用性以及校验位的配置建议,为STM32串口通信开发提供了清晰的实践指导。
2025-07-22 13:53:55
2132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
3