STM32定时器配置DMA时外设基地址的计算方法

在STM32中配置定时器的DMA功能时,需要将外设的地址作为源地址或者目的地址,本文举2例说明计算方法。

例一 、 使用PB1作为PWM输出,采用TIM3_CH4的DMA实现,初始化配置如下

在这里插入图片描述
在上述代码中有一个peri_base_addr,这个就是此DMA对应的外设基地址,也就是TIM3_CH4捕获比较寄存器的地址,现在通过手册来查找到这个寄存器的地址。

1.1、首先查询GPIO引脚描述表,找到目标引脚对应着TIM3_CH4,

在这里插入图片描述

1.2、然后查看DMA请求映像,对应着DMA通道3在这里插入图片描述

1.3、查看寄存器组起始地址列表,TIM3定时器起始地址为:0x4000 0400

在这里插入图片描述
在这里插入图片描述

1.4、查看TIM3寄存器组地址列表,捕获比较寄存器偏移地址为:0x40

在这里插入图片描述

1.5、综上信息可以计算TIM3_CH4的DMA对应的外设基地址

DMA外设基地址 = TIM3基地址+CH4捕获比较寄存器偏移地址,其中TIM3基地址又等于APB1外设基地址加一个TIM3的偏移地址,最后计算过程如下:
在这里插入图片描述

例二 、 使用PB15作为PWM输出,采用TIM1_CH3N的DMA实现,初始化配置如下

在这里插入图片描述

2.1、首先查询GPIO引脚描述表,找到目标引脚对应着TIM1_CH3N,

在这里插入图片描述

2.2、然后查看DMA请求映像,对应着DMA通道6

在这里插入图片描述

2.3、查看前面寄存器组起始地址列表,TIM1定时器起始地址为:0x4001 2C00

2.4、查看TIM1寄存器组地址列表,捕获比较寄存器偏移地址为:0x3C

在这里插入图片描述

2.5、综上信息可以计算TIM1_CH3的DMA对应的外设基地址

DMA外设基地址 = TIM1基地址+CH3捕获比较寄存器偏移地址,其中TIM1基地址又等于APB2外设基地址加一个TIM1的偏移地址,最后计算过程如下:
在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值