蓝盟IT外包,STM32使用DMA发送串行数据

发布者:上海IT外包来源:http://www.lanmon.net点击数:1062

蓝盟IT小贴士,来喽!
01概要
上一篇文章《STM32使用DMA接收串口数据》介绍了如何使用DMA接收数据。 使用DMA外围设备和串行外围设备。 使用的中断是串行空闲中断。 本文主要介绍使用DMA发送数据。 不说明基本的串行端口和DMA知识,直接访问代码。 如果有些学生对DMA和串行端口都不熟悉,建议参考上一篇文章《STM32使用DMA接收串口数据》。
要使用DMA发送数据,首先要检查您的串行端口是否有DMA。
使用的是USART1串行外围设备。 从数据手册中可以看出,USART1的收发支持DMA,使用的是DMA2。
02代码
基于上一篇文章中的DMA串行接收,修改了DMA串行发送的代码。
在此,除了通常的串行端口结构以外,还需要配置与串行端口的DMA发送、串行端口DMA接收相同的API函数。 将参数变更为USART_DMAReq_Tx即可。
这里也是正常的DMA配置过程。 不明白的人请参阅文章《STM32DMA详解》。 值得注意的是,配置完成后,DMA2_Stream7不会生效,启用后将立即发送UART_Buffer的数据。
03后记
这一篇很简单。 是DMA使用的延长。 如上所述,代码也贴了很多。 不可能把所有的代码都粘上。 作为软件工程师,还是在IDE上看代码比较方便。 如果有兴趣,请链接到下一个github下载代码。 有Keil和IAR的工程文件。
文/上海蓝盟  IT外包专家
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部