OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3844|回复: 7

用库函数的方式初始化IO口问题

[复制链接]

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2020-2-13
在线时间
12 小时
发表于 2020-3-4 13:28:34 | 显示全部楼层 |阅读模式
1金钱
IO口初始化.png 为什么GPIO_Init这个函数中的两个参数一个是变量一个取的是地址,我去源文件看了一下,定义的时候,两个参数定义的都是结构体指针变量,调用的时候只有一个是取地址的,我很不明白,求大佬解答

最佳答案

查看完整内容[请看2#楼]

指针就直接传递,变量就取地址
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-3-4 13:28:35 | 显示全部楼层
指针就直接传递,变量就取地址
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2020-3-4 15:00:13 | 显示全部楼层
形参都是结构体指针,而实参也都是结构体类型的指针,这种调用方式没啥问题
当然你也可以定义GPIO_InitTypeDef*GPIO_InitStructure;
然后对这个结构体指针变量赋值,赋值后再去调用GPIO_Init()
回复

使用道具 举报

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2020-2-13
在线时间
12 小时
 楼主| 发表于 2020-3-4 15:11:19 | 显示全部楼层
peng1554 发表于 2020-3-4 15:00
形参都是结构体指针,而实参也都是结构体类型的指针,这种调用方式没啥问题
当然你也可以定义GPIO_InitTy ...

如果我输入第一个实参的话,比如我输入GPIOB,为什么不用加取地址符合
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2020-3-4 16:19:09 | 显示全部楼层
看看GPIOB是怎么定义的
一分耕耘一分收获。
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2020-3-5 15:04:39 | 显示全部楼层
YiFeng666 发表于 2020-3-4 15:11
如果我输入第一个实参的话,比如我输入GPIOB,为什么不用加取地址符合

GPIOB本身是GPIO_InitTypeDef*数据了
你可以go to definition看下GPIOB的定义
回复

使用道具 举报

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2020-2-13
在线时间
12 小时
 楼主| 发表于 2020-3-6 09:15:55 | 显示全部楼层
peng1554 发表于 2020-3-5 15:04
GPIOB本身是GPIO_InitTypeDef*数据了
你可以go to definition看下GPIOB的定义

“ * ”不是表示定义指针结构体变量吗?
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2020-3-6 14:34:19 | 显示全部楼层
GPIOB不是有进行强制转换为(GPIO_TypeDef *)类型么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 16:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表