蓝桥杯嵌入式9DMA学习笔记

DMA的概念(直接存储器访问

1.用于在外设与存储器之间以及存储器与存储器之间的高速数据传输,DMA传输过程中的初始化和启动,由CPU完成,传输过程由DMA控制器来执行,无需CPU参与,从而节省CPU资源,提高利用率

2.DMA传输方式无需CPU直接控制传输,没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,从而使CPU的效率大大提高

DMA数据传输的四个要素

1.传输源:DMA数据传输的来源,

2.传输目标:DMA数据传输的目的,

3.传输数量:DMA传输数据的数量,

4.触发信号:启动一次DMA数据传输的动作

STM32_DMA

1.两个DMA模块:DMA1和DMA 2

2.两个DMA控制器共有12个通道,每个通道用专用于管理来自一个或多个外设的内存访问请求,每个控制器都有一个仲裁器,用于处理DMA请求之间的优先级

3.支持外设到内存,内存到外设,内存到内存和外设到外设的数据传输

4.每个通道与来自外设的DMA请求信号或内存到内存传输中的软件触发器相关联,此配置由软件完成

5.请求之间的优先级可由软件每个通道四个级别(非常高,高、中、低)和硬件编程(例如对通道一的请求优先于对通道二的请求)

6.源和目标的传输大小是独立的(字节、半字、字),模拟打包和解包,源地址和目标地址必须在数据大小上对齐

7.要传输的可编程数据数:0——65535

STM32_DMAMUX

DMA请求多路复用器

DMA MUX请求多路复用器支持在外设和产品的DMA控制器之间路由DMA请求线,路由功能由可编程多通道DMA请求线多路复用器,确保每个通道无条件的与与来自其DMAMUX同步输入的事件,同步的选择唯一的DMA请求线。DMAMUX还可以用作DMA请求生成器来自其输入触发信号的可编程事件

STM32——DMAMUX

多达16通道可编程DMA请求多路复用器输出

四个通道DMA请求发生器

21个触发输入的DMA请求生成器

21个同步输入

每个DMA请求现多路复用器通道输出

STM32cube初始化

DMA在应用时需要用到串口功能

1.配置好外部时钟

2.配置好相关的LED引脚

3.打开串口

 

 接下来配置DMA

点击Add,会出现select,添加USART1_RX和USART1_TX

 初始化完成,接下来编写代码

我们先进行DMA方式的接收和定长发送

 

 

 

接下来进行不定长DMA接收

 在主函数里while循环上面使能

在it.c问件中 在main.c文件

 

Idle回调函数需要在main.h文件中声明,否则it.c文件中的中断服务函数无法使用

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值