STM32 DMA 串口透传

本文探讨了在STM32中使用DMA进行串口传输的过程,强调了DMA的高速特性和两种数据交换方式。介绍了DMA的预处理、数据传送和结束处理阶段,以及相关寄存器的作用。通过示例展示了如何配置DMA通道进行串口接收和发送,并提到了不同中断触发方式。文章最后提供了简单的DMA串口收发函数,但指出未涉及FIFO精确收发的进一步处理。
摘要由CSDN通过智能技术生成

一直没有好好的捣鼓过DMA,在调BLE项目的时候,遇到了DMA串口传输的问题,伤心流涕甚长时间!!! 

DMA 网上的解释一大堆,简单总结一下:

DMA 处理过程全部是由硬件来实现的,速度很快!

DMA 在专门的DMA控制下,实现高速外设与主存储期之间自动成批量的数据交换。

通常有两种交换方式:独占总线方式  周期挪用方式


DMA 传送过程

  DMA 预处理

  DMA 数据传送

  DMA 结束处理 将总线控制权交换给CPU

 

 

DMA 内部寄存器

  地址寄存器 : 存放DMA传输是储存单元地址

  字节寄存器 : 存放DMA 传输字节数

  控制寄存器 : 存放CPU  设定的DMA传输方式

  状态寄存器 : 存放DMAC当前的状态


DMA 外设地址  基地址 偏移地址

两种方法设定地址:

#define USART1_DR_Base  0x40013804

#define USART1_DR_Base   (&(USART1->DR))  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值