13-HAL库DMA系统总结

这篇博客详细介绍了STM32F7xx系列的DMA(直接存储访问)功能,包括DMA的工作原理、两个DMA控制器的结构、数据流与通道的配置、FIFO模式与直接模式的区别,以及存储器到存储器的传输限制。此外,还解析了HAL库和LL库中与DMA相关的函数,并阐述了DMA初始化、配置和中断处理的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.间接

DMA:Direct Memory Access,直接存储访问,实现数据在外设与存储器或存储器之间高速访问,数据移动过程无需CPU操作控制,因此可以大大解放CPU负担。

外设(ADC、SPI、I2C、DCMI等外设的数据寄存器),存储器(片内SRAM、外部存储器、片内Flash等等)。外设到存储器,例如将AD转换的数据转移到所定义的存储区中。存储器到外设多用于外设的发送通信,例如串口不定长数据的输入输出。

STM32F7xx系列有2个DMA控制器,每个控制器具有8个数据流(stream),每个数据流有8个通道(channel),对应如下:

每个外设请求占用一个数据流通道,相同外设请求可以占用不同数据流通道。数据流的传输依靠仲裁器进行管理和判断,包括软件(例如初始化中mydma2.Init.Priority=DMA_PRIORITY_MEDIUM)和硬件(数据流编号越低,优先权越高)。DMA传输有FIFO模式和直接模式,直接模式在每个外设请求时立即启动对存储器传输,FIFO模式为源数据传输到目标地址前将数据临时存放在FIFO(先进先出存储器缓冲区)中。FIFO模式对于要求源地址和目标地址数据宽度不同时很有用,同时可用于突发传输。

存储器到存储器传输必须使用DMA2,但对数据流编号和通道没有硬性要求。

DMA2的存储器端口和外设端口都连接到AHB,但DMA的存储区端口没有AHB2外设的访问权,同时外设端口只连接到APB1外设,所以DMA1不能实现存储器到存储器传输。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值