STM32的DMA有三种类型的传输
1.M-M(内存到内存)
2.M-P(内存到外设)
3.P-M(外设到内存)
STM32的标准库函数提供了一个STM32的初始化结构体如下;
typedef struct
{
uint32_t DMA_PeripheralBaseAddr;//外设地址
uint32_t DMA_MemoryBaseAddr; //内存地址
uint32_t DMA_DIR; //传输方向
uint32_t DMA_BufferSize; //传输的数据多少
uint32_t DMA_PeripheralInc; //外设地址是否递增
uint32_t DMA_MemoryInc; //内存地址是否递增
uint32_t DMA_PeripheralDataSize; //外设数据宽度
uint32_t DMA_MemoryDataSize; //内存数据宽度
uint32_t DMA_Mode; //模式
uint32_t DMA_Priority; //优先级
uint32_t DMA_M2M; //是否是内存到内存的方式
}DMA_InitTypeDef;
上述结构体是STM32的初始化结构体,从上面的结构体变量定义,我们初始化DMA的时候可以分三步走:
第一步:从哪里来到那里去:这句话说明的是上述的第1-3条
uint32_t DMA_PeripheralBaseAddr;//外设地址
uint32_t DMA_MemoryBaseAddr; //内存地址
uint32_t DMA_DIR; //传输方向
第二步:数据要传输多少,传的单位是多少:这句话说明的是上述的第4-8条
uint32_t DMA_BufferSize; //传输的数据多少
uint32_t DMA_PeripheralInc; //外设地址是否递增
uint32_t DMA_MemoryInc; //内存地址是否递增
uint32_t DMA_PeripheralDataSize; //外设数据宽度
uint32_t DMA_MemoryDataSize; //内存数据宽度
第三步:啥时候传输结束; 这句话说明的是传输的模式
uint32_t DMA_Mode; //模式
DMA的初始化步骤
1、打开DMA时钟
2、写入DMA初始化结构体数据
3,调用DMA_Init函数将结构体数据写入寄存器
4,清空DMA发送/接收完成标志位
5,调用DMA_Cmd函数开启DMA通道
如果是M-P则需要通过使能DMA请求例如:
USART_DMACmd(使能DMA串口请求)
如果是M-M则不需要使能DMA请求。
当打开DMA通道时直接就开始数据传输了。
上一篇:STM32 ADC单次转换实例
下一篇:STM32CUBEusart的bug
推荐阅读
史海拾趣
Hama公司成立于1923年,最初在德勒斯登作为一家个人作坊起家,专门批发摄影设备及制造实验室和录音设备。随着电子技术的兴起,Hama敏锐地捕捉到市场变化,开始逐步将产品线扩展到电子配件领域。通过不断的技术研发和产品创新,Hama成功转型为一家电子配件的领军企业,其产品线涵盖了从电线、存储卡、天线到相机配件等广泛品类。这一转型不仅巩固了Hama在市场上的地位,也为其后续的发展奠定了坚实基础。
Hama公司成立于1923年,最初在德勒斯登作为一家个人作坊起家,专门批发摄影设备及制造实验室和录音设备。随着电子技术的兴起,Hama敏锐地捕捉到市场变化,开始逐步将产品线扩展到电子配件领域。通过不断的技术研发和产品创新,Hama成功转型为一家电子配件的领军企业,其产品线涵盖了从电线、存储卡、天线到相机配件等广泛品类。这一转型不仅巩固了Hama在市场上的地位,也为其后续的发展奠定了坚实基础。
近年来,网络安全问题日益严重。2022年,Delta Electronics遭遇了一起勒索软件攻击。面对这一挑战,公司迅速启动了应急响应机制,与专业的网络安全机构合作,成功阻止了攻击者的进一步行动。这一事件虽然给公司带来了一定的损失,但也让Delta更加重视网络安全问题,加强了公司网络安全防护体系的建设。
海芯科技自创立以来,一直秉持着创新和技术的核心理念。在公司的初期阶段,创始人凭借其丰富的行业经验和敏锐的市场洞察力,成功吸引了一批技术精湛、充满激情的团队成员。这些成员在各自的领域里都有深厚的背景和出色的能力,他们共同构成了海芯科技的核心研发团队。在公司的发展初期,这支团队便通过不断地技术创新和研发,为公司后续的发展奠定了坚实的基础。
在支付与金融服务领域取得成功后,Block USA Inc.还尝试了跨界合作,推出了音乐软件TIDAL。这一举措旨在通过提供高品质的音乐体验,吸引更多年轻用户群体,并进一步扩大Block的品牌影响力。虽然音乐市场竞争激烈,但TIDAL凭借其独特的音乐资源和用户体验,逐渐在市场中占据了一席之地。
随着产品性能的不断提升和市场需求的扩大,无锡友达开始积极拓展国内外市场。公司的产品不仅覆盖国内二十多个省、市,还远销欧美、中东、港澳台等国家和地区。通过与国际知名企业的合作,无锡友达不断提升自身的品牌影响力,逐渐在全球电子行业中占据一席之地。
有兴趣大家去投票啊。同时也欢迎凡是看到本贴的朋友,在本版内留下你最喜欢的方式。由北青传媒、北青文化和北京青年报数码时代发起,并联合国内5大门户网站QQ.com、网易、新浪、搜狐、TOM在线共同主办的“腾讯 改变你生活的十大新娱乐方式评选活动 ...… 查看全部问答∨ |
我上次写了一点自己学单片机的经历,我看有好多人看过了,很高兴自己有这么多的志同道合者啊!不过不好意思啊,上次写自己写太多了,以后我就从如何学单片机的各个部分给大家详细介绍一下吧!今天就和大家聊一下怎么学单片机的硬件部分啊! 大家 ...… 查看全部问答∨ |
MTK6225 手机开发板(含源代码) 有诚意者请联系 Qq:296662705 硬件特性: 1、 CPU:mtk6225 2、 TFLASH 卡接口 3、 176X220 2.6寸TFT LCD,最高支持320*240*16的TFT LCD 4、 4线触摸屏接口 5、 双声道音频输出 6、 一个Camera 130万像素 ...… 查看全部问答∨ |
|
EEWORLD的工程师: 您好。 我自己做的板子,在tms320c6414的emifa(64位宽度)外接32为宽度的sram,通过指针和数组两种方式往sram中写数据,以测试sram是否正常工作。但是发现,sram的所有地址空间只能写奇数,一旦往 ...… 查看全部问答∨ |
上次错过了MSP430的团购,这次来抢一块, 以前用过STM8,决定低功耗很不错,但是别人都说MSP430更强,哈哈,这回可以一探究竟了 打算对比下STM8和MSP430 希望论坛给予支持。呵呵… 查看全部问答∨ |
各位研究MSP430单片机的朋友们好!本人目前在做MSP430单片机与TC35之间的串行通信,想通过MSP单片机读取TC35中的信息或者将单片机中的指令通过TC35发送出去。现在做的是它们之间最基本的串口测试,但总是有问题存在,下面先展示本人的电路图。以下 ...… 查看全部问答∨ |