微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 地址不懂,寄存器

地址不懂,寄存器

时间:10-02 整理:3721RD 点击:
一直有一个疑问就是在32寄存器中,如#define TIM2    ((TIM_TypeDef ×)TIM2_BASE)
                                                       #define TIM2_BASE        (uint32_t)(0x20002000)这样就明确了TIM2_BASE的地址是0x20002000,可是在上一个指令define宏定义的只不过是把TIM2_BASE替换成一个常数!为什么0x20002000变成TIM2_BASE的地址?不懂!

#define TIM2    ((TIM_TypeDef ×)TIM2_BASE)
x应该是*吧,转换为指针。

学习一下                 

这个不是定时器2的地址,而是起始地址,也就是说从这里开始的一段内存都是属于定时器2的,在单片机里,操作其实都是对地址操作的,假如GPIOA_1的地址为0X00000001H,那么你写(uint32_t*)0X00000001 = 1.就是让GPIOA_1输出高电平,

×是*指针

谢谢,琢磨明白了

恩                                               

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top