标题: 关于stm32标准库的小小疑问 [打印本页]

作者: 134849694164151    时间: 2018-8-2 17:00
标题: 关于stm32标准库的小小疑问
stm32新手上路,请各位帮助帮助
一个关于stm32标准库的小小疑问。
#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)
这是标准库中GPIOA的宏定义
void GPIO_DeInit(GPIO_TypeDef* GPIOx)这是标准库中的一个函数
  就是想问一下这个函数里边的参数,比如说要传GPIOA那这个函数里边参数不就是GPIO_TypeDef* GPIOA吗,这个GPIOA再换成那个宏定义,最后不就变成GPIO_TypeDef*(GPIO_TypeDef* GPIOx)了吗,这样符合吗?麻烦看见的各位回答一下吧,想不明白
作者: 鸢飞戾天    时间: 2018-8-2 22:47
这是强制类型转换,不转换的话对于cpu来说你的gpio地址只是一个常量,转化成指针类型,通过指针来对指针指向的地址上的值进行改变,你那个宏定义的转化是钻了c语言的牛角尖
作者: 多德    时间: 2018-8-3 08:13
int GPIOA;
void GPIO_Init(int GPIOx);
函数里面就是int GPIOx,然后传参数进去就是int int GPIOA
你的意思是这样吗?
作者: Huaiwinter    时间: 2018-8-3 09:05
GPIO对电脑来说是常量符号,是通过指针进行改变,你那个不能换宏定义,这不是c语言编程能换的。
作者: OwenLiu    时间: 2018-8-3 09:31
强制类型转换啊,   GPIOA_BASE是个常量
作者: yousunny    时间: 2018-8-3 09:57
帮你问了群友,下面是答案。具体的如下

作者: qinmiss    时间: 2018-8-3 09:59
硬说也没什么毛病     但是32库函数给出的是系统化的。就是一层一层很有逻辑性,,调用起来十分方便。    然后你32新手上路,,,真的不需要考虑这个,,,你只需要学会使能和端口的应用。   库函数本来就是方便使用的,不用考虑太深
作者: 大鹏很正常    时间: 2018-8-3 16:28
GPIO对电脑来说是常量符号,是通过指针进行改变,不过可以尝试强制类型转换
作者: Lin327    时间: 2018-8-3 16:36
强制类型转换吧
作者: 134849694164151    时间: 2018-8-3 22:19
多德 发表于 2018-8-3 08:13
int GPIOA;
void GPIO_Init(int GPIOx);
函数里面就是int GPIOx,然后传参数进去就是int int GPIOA

是的,所以该怎么办




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1