地址不懂,寄存器
时间: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_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输出高电平,
×是*指针
谢谢,琢磨明白了
恩
