STM32CubeMX 5 解锁UART的DMA发送

一般只使用DMA帮助UART 的发送,这样可以更加节省串口占用的计算资源。因为之前那篇文章的uart发送实际上是中断发送(每个字符一次中断)的,而DMA则只会每个字符串一个中断。

开始设置:
在串口3的设置中:
STM32CubeMX 5 解锁UART的DMA发送_第1张图片

STM32CubeMX 5 解锁UART的DMA发送_第2张图片

在中断设置中即发现,DMA的中断设置已经自动打开了。如图所示:
STM32CubeMX 5 解锁UART的DMA发送_第3张图片

至此,设置完成。code generate; 打开project; build.
“ADC_BUG\ADC_BUG.axf” - 0 Error(s), 0 Warning(s).

然后在uart的.h文件中找到用DMA发送的函数,代替之前所用的中断发送函数即可。
STM32CubeMX 5 解锁UART的DMA发送_第4张图片
为了试验,我们将其中一个改成DMA发送。编译,没有error和warning。
STM32CubeMX 5 解锁UART的DMA发送_第5张图片
下载成功!
打开串口调试助手。
每按一次reset键,都会有一个“chongzi”出现在接收串口中。
STM32CubeMX 5 解锁UART的DMA发送_第6张图片
发送字符串1234567之后,有“received”的循环发送。
STM32CubeMX 5 解锁UART的DMA发送_第7张图片
测试成功!
硬件图:
STM32CubeMX 5 解锁UART的DMA发送_第8张图片

你可能感兴趣的:(工具调试笔记)