打印
[技术讨论]

STM32串口收发数据为什么要使用DMA?

[复制链接]
603|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#每日话题# #技术资源# #申请原创#

直接存储器访问(Direct Memory Access),简称DMA。DMA是CPU一个用于数据从一个地址空间到另一地址空间“搬运”(拷贝)的组件,数据拷贝过程不需CPU干预,数据拷贝结束则通知CPU处理。因此,大量数据拷贝时,使用DMA可以释放CPU资源。
在STM32控制器中,芯片采用Cortex-M3架构,总线结构有了很大的优化,DMA占用另外的总线,并不会与CPU的系统总线发生冲突。也就是说,DMA的使用不会影响CPU的运行速度。
DMA数据拷贝过程,典型的有:
  • 内存—>内存,内存间拷贝
  • 外设—>内存,如uart、spi、i2c等总线接收数据过程
  • 内存—>外设,如uart、spi、i2c等总线发送数据过程

串口有必要使用DMA吗
串口(UART)是一种低速的串行异步通信,适用于低速通信场景,通常使用的波特率小于或等于115200bps。PC与STM32单片机通信实例推荐:按下按键,通过串口发送数据实例。
对于小于或者等于115200bps波特率的,而且数据量不大的通信场景,一般没必要使用DMA,或者说使用DMA并未能充分发挥出DMA的作用。
对于数量大,或者波特率提高时,必须使用DMA以释放CPU资源,因为高波特率可能带来CPU资源过度浪费的问题。
举个例子:
对于发送,使用循环发送,可能阻塞线程,需要消耗大量CPU资源“搬运”数据,浪费CPU。对于发送,使用中断发送,不会阻塞线程,但需浪费大量中断资源,CPU频繁响应中断。以115200bps波特率,1s大约传输11520字节,大约69us需响应一次中断,如波特率再提高,将消耗更多CPU资源。
对于接收,如仍采用传统的中断模式接收,同样会因为频繁中断导致消耗大量CPU资源。

因此,在高波特率传输场景下,串口非常有必要使用DMA。
下方免费资料:   学习交流群:881895560

(stm32 USART串口应用)
http://www.makeru.com.cn/live/1392_1164.html?s=10
PWM脉宽调制技术
http://www.makeru.com.cn/live/4034_2146.html?s=10
基于STM32讲解串口操作
http://www.makeru.com.cn/live/1758_490.html?s=10
通过Z-stack协议栈实现串口透传
http://www.makeru.com.cn/live/1758_330.html?s=10
(stm32直流电机驱动)
http://www.makeru.com.cn/live/1392_1218.html?s=10
(零基础电子产品设计)
http://www.makeru.com.cn/live/3727_1388.html?s=10
从0到1,设计自己的开发板
http://www.makeru.com.cn/live/4034_2016.html?s=10
1小时彻底掌握STM32中断
http://www.makeru.com.cn/live/3523_1666.html?s=10
(定时器)
http://www.makeru.com.cn/live/1392_1199.html?s=10
STM32定时器深藏不露的绝技
http://www.makeru.com.cn/live/3523_1495.html?s=10
(stm32 温湿度采集)
http://www.makeru.com.cn/live/detail/1476.html?s=10
( ADC读取光照传感器)
http://www.makeru.com.cn/live/1392_1004.html?s=10
通信协议 - UART串口协议
http://www.makeru.com.cn/live/3576_1437.html?s=10
stm32之SPI通信
http://www.makeru.com.cn/live/3523_1795.html?s=10
SPI通信协议驱动norFlash
http://www.makeru.com.cn/live/4034_2151.html?s=10
(DMA专题讲解)
http://www.makeru.com.cn/live/1392_1048.html?s=10
http://www.makeru.com.cn/live/1392_1020.html?s=10
stm32 如何用DMA搬运数据
http://www.makeru.com.cn/live/detail/1484.html?s=10

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

17

帖子

1

粉丝