STM32中TIM_TypeDef* TIMx,定义的是什么数据?具体如下:麻烦大神解释下。

TIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct)这个函数... TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)这个函数中
TIM_TypeDef* TIMx定义的是什么类型的?假如输入的参数是TIM2,TIM2对应的是外设地址?被搞晕了,麻烦大神解释详细点。在这先谢谢各位了!
展开
 我来答
774051719a
2014-11-07 · TA获得超过1231个赞
知道小有建树答主
回答量:113
采纳率:100%
帮助的人:151万
展开全部

库函数的精髓之一。

首先TIM2是一个结构体,就和我们写C语言的结构体一样,一般情况下,我们定义的结构体会有系统分配内存,放在系统堆栈当中,但是在这里:

#define TIM2                ((TIM_TypeDef *) TIM2_BASE)

定义了一个结构体变量TIM2,并且把这个结构体变量强制放在地址为TIM2_BASE的地方,我们可以查到TIM2_BASE的值为0x40000000,你可以从STM32应用文档中看到TIM2外设对应的地址:

也就是TIM2外设相关控制寄存器都在这个地址范围里面,对TIM2结构体变量成员的操作就等于对TIM2外设寄存器的操作。比如:

TIM2->CR1的地址就是0x40000000,TIM2的CR1寄存器地址也是0x40000000

TIM2->CR2的地址就是0x40000004,TIM2的CR2寄存器地址也是0x40000004

那么对TIM->CR1和TIM2->CR2的读写操作也就是对定时器2的CR1、CR2寄存器的读写操作。

追问
谢谢!就采纳你吧,虽然还不是很明白...现在先用着先,以后应该会明白的!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式