求助:#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)

2019-10-12 14:07发布

原子哥资料上说    #define     GPIOA         ((GPIO_TypeDef *) GPIOA_BASE)    这句语句的意思是GPIOA指向
地址GPIOA_BASE(即0x40010800)。请问定义这条语句后GPIOA怎么就指向GPIOA_BASE(即0x40010800)了,
哪位大神能回答下啊?
或者解释下  ((GPIO_TypeDef *) GPIOA_BASE) 这个强制类型转换也可以啊。
谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
it_do_just
2019-10-12 16:16
你可以看看STM32中文参考手册,里面有讲到GPIO的寄存器有哪些,是不是跟上面的CRL,CRH,IDR....这些寄存器对应上了,包括偏移地址,根据手册查询到GPIOA的基地址后,强制转为这个结构类型,根据偏移地址可以对应到各个指定的寄存器,那么我们操作这个结构体就达到了操作GPIO的寄存器,关键还是C语言,建议再去看看

一周热门 更多>