历史上的今天

今天是:2024年11月03日(星期日)

2021年11月03日 | DMA的外设地址简单说明

发布者:温馨家园 来源: eefocus关键字:DMA  STM32 手机看文章 扫描二维码
随时随地手机看文章

说成外设寄存器地址不就完了么,和内核的总线地址又容易混起来,总之dma的源和目的地址,涉及到外设的,就是外设寄存器,iis数据要从总线跑到外设寄存器上,dma才能亮剑

关于在STM32的DMA中使用外设地址

在使用的DMA的时候,有时候需要将外设的地址作为源地址或者目的地址,对于初学者来说这个地址在哪边确定有点犯难,这篇文章就来告诉大家如何快速找到你需要的地址。

我们先看一个DMA初始化的例子:

//DMA初始化函数
void UsartDMA_Init(void)
{
DMA_InitTypeDef DMA_InitStructure;

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//使能DMA时钟

DMA_DeInit(DMA1_Channel7);//串口2的DMA传输通道是通道7

DMA_InitStructure.DMA_PeripheralBaseAddr = USART2_DR_Base;
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SendBuff;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;//外设作为DMA的目的端
DMA_InitStructure.DMA_BufferSize = SENDBUFF_SIZE;//传输大小
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址不增加
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存地址自增1
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//DMA_Mode_Normal(只传送一次), DMA_Mode_Circular (不停地传送)
DMA_InitStructure.DMA_Priority = DMA_Priority_High;//(DMA传送优先级为中等)
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel7, &DMA_InitStructure);
}

在上述代码中有一个USART2_DR_Base,这个就是我们需要的地址,也就是USART2的DR寄存器地址,这个地址有两种方法得到:

第一种:

//串口2DR寄存器的地址#define USART2_DR_Base (u32)&USART2->DR


这种方法比较讨巧,使用起来也方便,学过寄存器操作STM32的亲们还是很容易理解为什么这样可以得到我们想要的结果。

第二种:

//串口2DR寄存器的地址#define USART2_DR_Base (u32)0x40004404


这就是自己通过手册来查找到这个寄存器的地址,输入一大串数字,这种方法比较费时费事。

那么亲们会问,如何快速的找到这个寄存器的地址,首先打开参考手册,移动到2.3节---寄存器映像,也就是第28页,这里列出了STM32内部地址的划分,找到你要的外设基地址,例如USART2的基地址为0x40004400。然后再你需要的外设关于寄存器的地方找到寄存器的偏移地址,如USART的DR寄存器的偏移地址为04,基地址加偏移地址就得到这个寄存器的地址了。


其它外设一样查找,个人还是建议使用第一种方法。


关键字:DMA  STM32 引用地址:DMA的外设地址简单说明

上一篇:关于DMA传输外设地址的说明
下一篇:STM32 DMA外设地址的计算问题

推荐阅读

        集微网11月3日报道(记者 张轶群)继1日美国商务部将晋华列入出口管制实体清单,禁止美国企业向晋华出售技术和产品后,昨天,美国司法部宣布以从事经济间谍活动等罪名起诉晋华和联电以及三名联电高管,同时提起民事诉讼,申请禁令阻止联电与晋华利用具有争议商业机密所制造的产品输往美国。        一周之内,美国两大政府部门先...
10月30日,2019国际服务机器人及特种机器人峰会在北京开幕,峰会上,从中国机械工业联合会执行副会长、中国机器人产业联盟执行理事长宋晓刚处获悉,中国正在研究制定面向2035年的机器人产业发展规划,近期,在工信部支持下,相关部门已在西南、东北、珠三角、长三角进行了将近两个月的密集调研,这一机器人发展规划的一个最重要的内容就是总结“十三五”...
近日,蔚来创办人李斌在 EP CLUB(蔚来汽车知名品牌最大端客户俱乐部队)上表示,蔚来目前正在研发 150 度电池包,NEDC 续航里程将超过 900 公里。 据悉,蔚来目前共有 70kWh、84kWh 以及 100kWh 三个电池包可供消费者选择,而 100kWh 的电池包将于 2020 年第四季度开始提供。根据猜测,150 度电池包将于前三者的尺寸一致,以满足蔚来换电架...
中国选手在英特尔AI全球影响力嘉年华获佳绩搭建全球竞技大舞台 提升AI社会影响力近日,英特尔On技术创新峰会(Intel Innovation)盛大开幕。作为峰会的重要内容之一,英特尔还在此前举办了首届英特尔AI全球影响力嘉年华,并由英特尔首席技术官(CTO)高级副总裁、英特尔软件和先进技术事业部总经理 Greg Lavender在大会上宣布了获奖队伍名单,中国参赛...

史海拾趣

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved