#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)这句话的具体作用是什么啊

2019-08-18 19:04发布

#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)这句话的具体作用是什么啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
cdshkf
2019-08-19 00:53
1、#define GPIOA      ((GPIO_TypeDef *) GPIOA_BASE)这句话我给你简单翻译一下:GPIOA首先是一个指向地址GPIOA_BASE的指针,指针类型为一个GPIO_TypeDef类型的结构体,也就是说GPIOA指向的结构体第一个成员为GPIOA的第一个寄存器,而这第一个寄存器的地址偏移一般是0,也就是说第一个寄存器的地址就是GPIOA_BASE,第二个寄存器地址为GPIOA_BASE+4个字节,以此类推。
2、不能把*号去掉,这是嵌入式C语言中定义指向固定地址指针的严格格式,比如我想在SRAM的地址0x2000FFF0处定义一个指针变量,就可以如下:
#define dat   (unsigned char *)0x2000FFF0;(*号不能少)
*dat=0;
3、你所说的ss不是指针。

一周热门 更多>