打印
[其他ST产品]

STM32F4 DMA设置是什么意思?

[复制链接]
666|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2023-7-26 10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用STM32F4 的dma
DMA_InitStructure.DMA_MemoryBurst;
DMA_InitStructure.DMA_PeripheralBurst ;


首先这两个设置是什么意思?
这两个我看例程都是设置为DMA_MemoryBurst_Single 和 DMA_PeripheralBurst_Single  
那么,DMA_MemoryBurst_INC4 和 DMA_PeripheralBurst_INC4  或者更多的 INC8和INC16  在什么时候使用,在什么情况下使用

使用特权

评论回复
沙发
香水城| | 2023-7-26 10:39 | 只看该作者
DMA BURST传输往往要结合FIFO,主要用在源端、目的端数据宽度不一致时可以适当打包、拆包数据。

建议找个实际通信外设体验下,这样理解起来快。

STM32带FIFO的DMA传输应用示例

使用特权

评论回复
板凳
鱿鱼丝| | 2023-7-26 12:15 | 只看该作者
在STM32F4系列的微控制器中,DMA(Direct Memory Access)控制器允许数据在外设和存储器之间直接传输,无需CPU干预,从而提高数据传输的效率。DMA_MemoryBurst和DMA_PeripheralBurst是两个与DMA传输中突发传输(Burst Transfer)相关的设置。


DMA_MemoryBurst:


这个设置定义了DMA在一个传输请求期间从存储器执行的传输突发大小。也就是说,DMA可以在一个请求期间连续传输多少个数据。
常用的选项有:
DMA_MemoryBurst_Single:每个请求期间只传输一个数据。
DMA_MemoryBurst_INC4:每个请求期间传输4个连续数据。其他类似的选项还有DMA_MemoryBurst_INC8和DMA_MemoryBurst_INC16,分别表示每个请求期间传输8个和16个连续数据。
DMA_PeripheralBurst:


这个设置定义了DMA在一个传输请求期间从外设执行的传输突发大小。也就是说,DMA可以在一个请求期间连续传输多少个数据从外设读取或写入。
常用的选项与DMA_MemoryBurst类似,包括DMA_PeripheralBurst_Single、DMA_PeripheralBurst_INC4、DMA_PeripheralBurst_INC8和DMA_PeripheralBurst_INC16。
这两个设置与外设和存储器的性能以及传输要求有关。通常情况下,Single选项对于大多数应用足够,因为它们可以减少DMA传输期间可能出现的冲突和复杂性。但是,如果你的外设或存储器支持更大的传输突发大小,并且你的应用程序可以从中受益,你可以尝试使用INC4、INC8或INC16等选项,以提高传输效率。


在选择使用哪种传输突发大小时,需要考虑以下因素:


外设和存储器的数据带宽和处理能力。
数据传输的实际需求和模式,例如你的应用程序可能需要一次性传输多个连续的数据块。
总结起来,如果你的应用程序中有特定的需求或优化目标,并且你的外设和存储器支持较大的传输突发大小,那么你可以尝试使用INC4、INC8或INC16选项,否则使用Single选项通常是一个稳妥的选择。在实际应用中,你可以根据性能评估和测试来确定最适合你的场景的设置。

使用特权

评论回复
地板
白马过平川| | 2023-8-13 17:41 | 只看该作者
DMA_MemoryBurst 和 DMA_PeripheralBurst 是用于配置DMA传输中的内存突发和外设突发的参数

使用特权

评论回复
5
dingy| | 2023-8-13 18:21 | 只看该作者
外设和存储器的数据带宽和处理能力可以解释下吗

使用特权

评论回复
6
风凉| | 2023-8-13 19:22 | 只看该作者
一般就默认就行吧,就是DMA的一种配置

使用特权

评论回复
7
捧一束彼岸花| | 2023-8-13 21:22 | 只看该作者
DMA_MemoryBurst 是用于配置DMA传输期间内存的突发传输长度。可以配置成单次传输、4个字节连续传输、8个字节连续传输、164个字节连续传输

使用特权

评论回复
8
春日负喧| | 2023-8-13 23:45 | 只看该作者
DMA_PeripheralBurst 是用于配置DMA传输期间外设的突发传输长度

使用特权

评论回复
9
故意相遇| | 2023-8-14 03:16 | 只看该作者
其实就是为了配置好DMA,然后方便开发者传输数据

使用特权

评论回复
10
将爱藏于深海| | 2023-8-14 09:11 | 只看该作者
一个是内存一个是外设,所以区分好哦

使用特权

评论回复
11
她已醉| | 2023-8-14 11:26 | 只看该作者
合理选择 DMA_MemoryBurst DMA_PeripheralBurst 的参数值,可以根据具体的应用需求和硬件特性来平衡传输效率和系统负载。

使用特权

评论回复
12
她已醉| | 2023-8-14 11:26 | 只看该作者
合理选择 DMA_MemoryBurst DMA_PeripheralBurst 的参数值,可以根据具体的应用需求和硬件特性来平衡传输效率和系统负载。

使用特权

评论回复
13
温室雏菊| | 2023-8-14 13:14 | 只看该作者
这些参数的选择取决于你的具体应用需求和硬件特性。通过设置合适的突发传输长度,可以提高DMA传输的效率和性能。

使用特权

评论回复
14
失物招領| | 2023-8-14 13:54 | 只看该作者
突发传输是指在一次DMA传输中连续传输多个数据。通过增加突发传输长度,可以减少DMA传输的开销和延迟,从而提高传输效率。然而,较大的突发传输长度可能会导致更高的内存访问负载和占用更多的总线带宽。

使用特权

评论回复
15
我吃小朋友| | 2023-8-14 15:26 | 只看该作者
外设突发传输的目的是减少外设和DMA之间的传输延迟,提高数据传输的效率。同样,较大的突发传输长度可能会增加外设的负载和占用更多的总线带宽。

使用特权

评论回复
16
Undshing| | 2023-8-14 23:48 | 只看该作者
找一个例程体验一下试试呗

使用特权

评论回复
17
Mowergy| | 2023-10-21 15:00 | 只看该作者
这些参数的选择取决于你的具体应用需求和硬件特性

使用特权

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

本版积分规则

378

主题

2018

帖子

3

粉丝