关于STM32F103单片机库函数里的结构体指针不理解,求大神帮助

最近在学STM32看了下范例程序和库里面的各种结构体指针定义,本人比较笨,有地方看不懂,请高手帮忙解答我在别人的例子程序里面看到这个GPIO_InitTypeDefGPI... 最近在学STM32看了下范例程序和库里面的各种结构体指针定义,本人比较笨,有地方看不懂,请高手帮忙解答
我在别人的例子程序里面看到这个
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5
前面都能看懂,就是最后这个GPIO初始化,GPIO_Init函数的数据类型觉得不太明白
外设GPIO.C文件里有这个初始化io口的函数
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
我说下我的理解如果有错请及时指出来谢谢
GPIOx是个形参,数据类型是指向GPIO_TypeDef这种结构体的指针变量,里面存放的是结构体地址,对吗?
然后我一路查回去发现这几行
#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE),GPIOB_BASE是个数值,然后强制转换成结构体指针变量,然后GPIOB也就变成了结构体指针变量然后和GPIOx的数据类型一样,可以把值传递给形参,对吗
如果以后上都对我的问题就出来了 那么GPIO_InitStruct也是结构体指针变量,但是例子程序里有GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure是个结构体加个&,是取地址,他和形参GPIO_InitStruct不是一个类型吧,这样可以传递吗,该怎么理解呢
展开
 我来答
百度网友746d508
2014-03-25 · TA获得超过579个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:183万
展开全部
理解的没错啊,GPIO_InitStructure是GPIO_InitTypeDef 类型的变量对吧,对它取地址得到的就是GPIO_InitTypeDef*类型的指针,跟形参GPIO_InitStruct的类型一样的啊都是GPIO_InitTypeDef*类型的指针。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式