STM32F1系列学习历程2(裸机全部程序)

十二、DMA原理与应用

DMA,全称为:Direct Memory Access,即直接存储器访问,DMA 传输将数据从一个地址空间复制到另外一个地址空间。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。

DMA 传输对于高效能嵌入式系统算法和网络是很重要的。DMA 传输方式无需 CPU 直接 控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备 开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。 

STM32 最多有 2 个 DMA 控制器(DMA2 仅存在大容量产品中),DMA1 有 7 个通道。DMA2 有 5 个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁起 来协调各个 DMA 请求的优先权。

每一个通道中多个请求,在每一次的过程中均只能是其中一个有效,它们之间是或的关系。

 寄存器介绍:

 DMA 中断状态寄存器(DMA_ISR)

  DMA 中断标志清除寄存器(DMA_IFCR)

由于以上状态寄存器的位是只能够读取,因此需要另外的寄存器来置位它的状态

注意:DMA_IFCR 的各位就是用来清除 DMA_ISR 的对应位的,通过写 0 清除。在 DMA_ISR 被置位后, 我们必须通过向该位寄存器对应的位写入 0 来清除。

程序初始化步骤:

1)使能 DMA 时钟 

2)初始化 DMA 通道X参数 

3)使能串口 DMA 发送 

4)使能 DMA1 通道 X,启动传输。 

5)查询 DMA 传输状态 

推荐文章:https://blog.csdn.net/qq_30286973/article/details/84111537

未完待续,欢迎提问留言

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值