参考教程:【STM32】HAL库 STM32CubeMX教程十一---DMA (串口DMA发送接收)_cubemx dma-优快云博客
【工具使用】STM32CubeMX-DMA配置(ADC+DMA 和 UART+DMA)_stm32cubemx adc dma-优快云博客
STM32CubeMX配置
1. 在需要打开外设的地方点击 DMA Settings - Add 添加通道
2. 基础设置
- Channel:传输通道
- Direction:数据传输方向
- 外设到内存 Peripheral To Memory
- 内存到外设 Memory To Peripheral
- 内存到内存 Memory To Memory
- 外设到外设 Peripheral To Peripheral
- Piority:优先级
- 最高优先级 Very High
- 高优先级 Hight
- 中等优先级 Medium
- 低优先级 Low
2. DMA Request Settings
- Mode
-
Normal 正常模式
当一次DMA数据传输完后,停止DMA传送 ,也就是只传输一次Circular 循环模式
传输完成后又重新开始继续传输,不断循环永不停止
-
-
Increment Address
-
Src Memory 外设地址寄存器
-
勾选Increment Address(递增)时,下一次传输时外设地址加 Data Width 个字
-
-
Dst Memory 内存地址寄存器(即代码中定义的数组)
-
勾选Increment Address(递增)时,下一次传输时内存地址加 Data Width 个字,Data Width的值取决于传输的数据。
- 8位(Byte):每次传输1字节(如
uint8_t
类型数据)。 - 16位(Half-Word):每次传输2字节(如
uint16_t
类型数据)。 - 32位(Word):每次传输4字节(如
uint32_t
类型数据)。
- 8位(Byte):每次传输1字节(如
-
-
3. DMA Request Synchronization Settings
特别高级的设置,默认即可
代码编写
外设的所有对应函数都使用带有DMA的版本。