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配置引腳時,能夠有效的避免不熟悉芯片導致配置出錯的問題。
上一篇:STM32定時器的預裝寄存器以及影子寄存器話題
下一篇:STM32F030R8-Nucleo使用PA2、PA3 UART2不能使用的問題
推薦閱讀
史海拾趣