永发信息网

#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) 是什么意思

答案:4  悬赏:0  手机版
解决时间 2021-04-29 13:09
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) 是什么意思
最佳答案
文件stm32f10x_map.h包含了所有外设控制寄存器的结构,其中GPIO为:
typedef struct { vu32 CRL; vu32 CRH; vu32 IDR; vu32 ODR; vu32 BSRR; vu32 BRR; vu32 LCKR; } GPIO_TypeDef; typedef struct { vu32 EVCR; vu32 MAPR; vu32 EXTICR[4]; } AFIO_TypeDef;
已经声明新结构体类型名GPIO_TypeDef;,他就代表上面指定的结构体类型而vu32在函数库最开始就被定义了typedef volatile unsigned long vu32;
你看一下函数库吧,我也新手,这样是肯定的:GPIOx肯定对应CRL、CRH、IDR、ODR、BSRR、BRR寄存器 ;所以
define GPIOx ((GPIO_TypeDef *) GPIOx_BASE)就是GPIOx 在CRL、CRH、IDR、ODR、BSRR、BRR寄存器的基址
全部回答
在头文件 stm32f10x.h 内 已经 作了 预处理了
#define AFIO_BASE (APB2PERIPH_BASE + 0x0000)
#define EXTI_BASE (APB2PERIPH_BASE + 0x0400)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00)
#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000
它们 都 已经被定义好了数值
#define GPIOA ((GPIO_TypeDef*)GPIOA_BASE)
1)GPIOA_BASE被强制转换为地址,空间以GPIO_TypeDef的类型进行构建,首址为GPIOA_BASE,空间内有成员,之间依各自固有类型顺序分配相应空间;
2)GPIOA宏展开,即为紧跟其后的具体内容,这样它就是一个指针了:指向以GPIOA_BASE为首址的结构体空间。所以您给出GPIOA->某成员,则操作成立,如取该成员地址、赋值等。
这是宏定义,是预编译命令。即,在正式编译程序前,先做字符串替代,替代完毕再编译。
例如:
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
预编译命令 说,凡后面程序中出现 GPIOA 的地方,把 GPIOA 换成:
((GPIO_TypeDef *) GPIOA_BASE) 后再编译。
后面的 #define 命令 类似。例如
#define GPIOI ((GPIO_TypeDef *) GPIOI_BASE)
即 凡后面程序中出现 GPIOI 的地方,把 GPIOI 换成:
((GPIO_TypeDef *) GPIOI_BASE) 后再编译。
----
另外:
(GPIO_TypeDef *) ... 是强制转换。
GPIO什么 替代后就有了 GPIO什么_BASE。 所以 原来的 结构体里面找不到 它们。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现在的硬盘停电时磁头能自动归位吗?
斗战神宠物在哪买,斗战神中,如果背包满了,
一声归去,打一名胜
为什么我家下的飞车真卡
双城市塑料制品有限公司地址在哪,我要去那里
夸菜品好吃的句子,形容食物味道好的句子
工商银行卡每天最多能转账多少钱
热血英豪里的什么装可以Y人最牛?
第31届奥运会在哪举办
猪死以前会说什么
信誉粮油商行我想知道这个在什么地方
为什么泰国好迷信
带有万.千的四字成语(4个)
梦三国里怎么杀自己的兵
什么样的爱情经的起考验?
推荐资讯
长江超市辉泉糖酒加盟店这个地址在什么地方,
开双核用哪个主板好?
洛阳冬季都有什么好玩的
么样离婚
网络无法连接
求助郎中妙方
我QQ显示的IP地址怎么与实际不符,而且经常变
变态反应性疾病种类
ipod touch3代和4代有什么不同价格怎么样?
eva的片尾曲为什么总是爵士风格的
常州浦南公寓在哪
什么样的幸福才算幸福
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?