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

2019-08-18 19:04发布

#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)这句话的具体作用是什么啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
ofourme
1楼-- · 2019-08-19 11:09
最好改一下标题以便于其他人搜索。
ping1185279685
2楼-- · 2019-08-19 13:31
回复【5楼】cdshkf:
---------------------------------
我想我应该明白了! #define GPIOA      ((GPIO_TypeDef *) GPIOA_BASE)   我理解成:(GPIO_TypeDef *) 是强制转换,把GPIOA_BASE转换成GPIO_TypeDef*类型,也就是说GPIOA的值就是GPIOA_BASE,同时又是GPIO_TypeDef 结构体指针,指向GPIO_TypeDef 结构体的第一个元素,也就是地址为GPIOA_BASE的元素(这里为寄存器)...应该是这样的吧
cdshkf
3楼-- · 2019-08-19 19:18
回复【9楼】ping1185279685:
---------------------------------
孺子可教!
ping1185279685
4楼-- · 2019-08-19 22:09
回复【10楼】cdshkf:
---------------------------------
但是我还有一点不明白!!GPIOA->CRL=0x00000001 这句话是怎么把数据送入寄存器的,是从GPIOA基地址加上CRL偏移地址 开始一位一位连续的放入数据么,如果是的话,怎么感觉是给地址赋值啊
cdshkf
5楼-- · 2019-08-20 01:32
 精彩回答 2  元偷偷看……
ping1185279685
6楼-- · 2019-08-20 06:09
回复【12楼】cdshkf:
---------------------------------
有一点奇怪的是:GPIOA->CRL=0x00000001是给地址赋值,但是struct   stud{int a; char b;}; struct stud * ss; ss->a=1;却是给变量赋值,一个给地址赋值一个给变量赋值...好奇怪啊

一周热门 更多>