STM32
直播中

张秀兰

7年用户 1255经验值
私信 关注
[问答]

如何解决STM32串口DMA传输不能使用的问题?

如何解决STM32串口DMA传输不能使用的问题?

回帖(1)

刘兴欢

2021-12-13 15:13:27
1. 开发环境

开发平台:官方开发板STM32F030R8-Nucleo
开发软件:Keil uVision5.24
开发库:STM32Cube_FW_F0_V1.9.0
2. 实验现象

根据官方例程,将UART1的DMA传输配置更改为UART2,但是使用UART2时,DMA的中断都进入不了,一开始以为是时钟未开启导致的,后来仔细对比后并无异常。于是查看了STM32F030的参考手册,DMA这一章,发现DMA的通道固定映射到相应的外设上,而不能随意配置。





我这里使用的是UART2,从上面的 mapping 图中可以看出UART2_TX只能使用 Channel4,UART2_RX只能使用 Channel5。所以我们在使用DMA通道时,一定要先查阅相应单片机DMA通道分配图,然后再选择配置相应的通道。
现在ST主推HAL库,使用该库时能够使用CubeMX生成引脚配置的代码,使用CubeMX配置引脚时,能够有效的避免不熟悉芯片导致配置出错的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分