【STM32F103】DMA学习笔记(陆续添加)

本文详细介绍了STM32F103的DMA特性,包括两个独立DMA模块、四级优先级、循环模式等。阐述了DMA处理过程及配置步骤,并提供了硬件设计和软件设计的编程实例,涉及USART1通过DMA1通道4和5进行数据传输。
摘要由CSDN通过智能技术生成

参考:STM32F10xxx参考手册

DMA主要特性比较多,简要为以下几条:

1.两个独立DMA模块,其中DMA2只有在大容量和互联网型号中有

2.四级优先级,同级的请求,则根据通道号大小,小的优先级高

3.可设置为循环缓存

4.传输宽度可设,字节,半字,全字(对应的字的长度应该是32bits,stm32是32位单片机)

5.三种事件可触发中断:DMA半传输,DMA传输完成,DMA传输错误

6.最大传输数目为65535

DMA处理过程

DMA_CPARx或DMA_CMARx用于设置传输开始地址

DMA_CNDTRx用于保存未完成的操作数目,会自递减(应该是16位寄存器)

DMA通道配置步骤

1.在DMA_CPARx中设置外设寄存器的地址,在DMA_CMARx中设置数据存储器的地址

2.DMA_CNDTRx设置传输的数据量,启动传输后,该寄存器值会递减

3.DMA_CCRx的PL位设置优先级

4.DMA_CCRx设置传输方向、循环模式、外设和存储器的增量模式、数据宽度、以及中断事件

5.DMA_CCRx的ENABLE位置1启动DMA通道

6.中断会在DMA_ISR寄存器置位对应的标志

循环模式

用于处理循环缓冲区和连续的数据传输(例如ADC扫描)。DMA_CCRx中CIRC位用于开启该功能

可编程设置数据传输宽度、对齐方式、数据大小端

PSIZE用于设置外设数据宽度

MSIZE用于设置存储器数据宽度

PINC和MINC用于设

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值