打印
[其他ST产品]

STM32开发---USART使用DMA时能省多少时间

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
61
hudi008| | 2023-10-14 11:29 | 只看该作者 回帖奖励 |倒序浏览
使用DMA传输数据时,CPU无需直接参与数据的传输过程,而是将数据传输的任务交给DMA控制器完成。这样,CPU可以在数据传输期间执行其他任务,而无需等待USART传输完成。

使用特权

评论回复
62
gygp| | 2023-10-14 12:37 | 只看该作者
如果我们使用的是115200波特率的USART,每一个字节的发送或接收都需要等待87us的时间,如果是27个字节,那么就需要等待2343us的时间。而如果使用DMA进行传输,就可以避免这种等待,从而节省时间。

使用特权

评论回复
63
lzmm| | 2023-10-14 13:40 | 只看该作者
以USART1为例,当波特率为9600bps时,使用DMA传输可以节省约2.5us的时间,当波特率为115200bps时,使用DMA传输可以节省约8.3us的时间。需要注意的是,这些时间节省值仅供参考,实际的时间节省值可能因具体的应用环境和参数而有所不同。

使用特权

评论回复
64
claretttt| | 2023-10-14 15:02 | 只看该作者
具体能节省多少时间,取决于多个因素,例如数据传输量、数据传输速率、CPU的处理速度等。

使用特权

评论回复
65
yeates333| | 2023-10-14 15:47 | 只看该作者
使用DMA传输数据可以大大提高数据传输的效率,从而节省时间。具体来说,节省的时间取决于数据的大小和传输的频率。

使用特权

评论回复
66
benjaminka| | 2023-10-14 16:35 | 只看该作者
节省的时间取决于数据量、传输速度、CPU和DMA控制器的性能等因素。

使用特权

评论回复
67
51xlf| | 2023-10-14 19:56 | 只看该作者
在传统的串口通信中,数据发送或接收通常需要CPU的直接参与。每个字节的发送,都需要CPU进行控制,等待传输完成,然后再进行下一个字节的发送。这种传输方式在处理大量数据时,会占用CPU大量的时间,导致效率低下。

使用特权

评论回复
68
jtracy3| | 2023-10-14 20:22 | 只看该作者
具体省去的时间取决于串口通信的速率、数据传输量、以及数据传输方式等因素。

使用特权

评论回复
69
hilahope| | 2023-10-14 21:50 | 只看该作者
在高速串口通信中,如果每秒需要传输大量的数据,采用基于CPU的轮询方式可能会耗费大量的CPU处理时间和带宽资源,导致系统性能下降。而利用DMA机制,可以将数据传输任务分离出来,卸载CPU的负担,从而提高数据传输的效率和可靠性。

使用特权

评论回复
70
macpherson| | 2023-10-16 14:13 | 只看该作者
DMA允许数据在内存和USART之间直接传输,而无需CPU的干预。这样可以减少CPU的负载并提高系统性能,特别是在大量数据传输的情况下。

使用特权

评论回复
71
louliana| | 2023-10-16 16:19 | 只看该作者
使用DMA的好处在于释放CPU的负载,使其能够并行执行其他任务,从而提高系统的效率。

使用特权

评论回复
72
updownq| | 2023-10-18 19:51 | 只看该作者
使用DMA进行数据传输可以大大减少CPU的等待时间,提高数据传输的效率。

使用特权

评论回复
73
belindagraham| | 2023-10-18 20:17 | 只看该作者
USART使用DMA时能够节省的时间取决于具体的传输数据量和波特率,以及DMA的配置和硬件环境。

使用特权

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

本版积分规则