stm32 串口使用 DMA 速度并不快

2019-08-21 10:41发布

stm32 串口使用 DMA 和不使用 DMA 速度基本没有差别,难道 DMA 不能显著提升速度吗,还是另有隐情
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
qiuzhi339
1楼-- · 2019-08-23 12:49
回复【3楼】ricefat:
---------------------------------
DMA就是开辟了一个内存到外设之间的通道,开通之后不需要MCU参与传输处理了,在传输中释放了MCU,这个时候有点像操作系统的延时释放CPU一样,但是速度还是通过串口的基本参数配置的
合肥-文盲
2楼-- · 2019-08-23 18:10
qiuzhi339 发表于 2013-11-25 21:38
回复【15楼】正点原子:
---------------------------------
原子哥,这些我都懂,我也是科班出身,
其实我 ...

目前我也遇到楼主的问题,dma开启传输后,还要等待传输完成才可以让cpu做别的事情,这样dma传输期间cpu也是浪费了,没达到原本cpu dma分开工作的目的,楼主现在搞定这个问题了吗
979653421@qq.co
3楼-- · 2019-08-23 20:47
论软件架构的重要性。

如果你不针对DMA的特性或者根本不会调整软件架构,那么DMA对你来说没任何意义

就好比Intel新发明一个指令,用于进行快速傅里叶变换,一个指令就搞定了,然而所有的编译器都不针对该指令调整编译策略,
遂所有人一致认为:该指令无意义,

Intel的心情是这样的:
7_感觉不会再爱了.gif
xkwy
4楼-- · 2019-08-24 01:14
 精彩回答 2  元偷偷看……
谢小是
5楼-- · 2019-08-24 02:06
谢小是 发表于 2016-4-26 22:25
为什么SPI用DMA的话会显著的提高传输速度?

为什么为什么
xtong533
6楼-- · 2019-08-24 07:05
楼主可以充分利用定时器中断,dma传输完成中断,串口传输完成中断等来实现你的效率优化。具体代码我就不写了,思路很重要。如果你不需要定时发送,还可以调用dma的循环模式

一周热门 更多>