OpenEdv-开源电子网

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

按键实验key.c程序有点问题没看懂。

[复制链接]

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2015-12-17
在线时间
9 小时
发表于 2016-1-15 09:39:05 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 liuchangnan789 于 2016-1-15 10:33 编辑

关于初始化GPIO的问题。为什么WAKE_UP那个GPIO初始化的时候只有初始化引脚和下拉,那速度和模式不用吗?还是因为这两个口和KEY_0_1_2一样所以不用了?我特意看了typedef这个定义,没啥的。。我理解力太差,求大家解答一下



补充:我刚才打开寄存器版本的,发现里面用是的GPIO_SET。进入sys.h看到下图这句话。我的理解就是作为输出时其实速度和推挽还是开漏无关,看来我学习还是不仔细啊。
捕获.PNG
捕获1.PNG

最佳答案

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

GPIO_Init已经将前面几个按键设置完了,由于按键都是输入模式,所以mode就不用设置了(对于输入模式,速度设置是多余的),mode值仍保存在结构体中,只要设置一下不一样的下拉即可,然后再用这个结构体去设置这个WK_UP按键。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2014-12-19
在线时间
710 小时
发表于 2016-1-15 09:39:06 | 显示全部楼层
本帖最后由 lvehe 于 2016-1-15 11:01 编辑
liuchangnan789 发表于 2016-1-15 10:20
你好,那既然用的一个结构体,那两个GPIO_Init取结构的时候定义了两个GPIO口和上拉或者下拉,用哪个阿, ...

GPIO_Init已经将前面几个按键设置完了,由于按键都是输入模式,所以mode就不用设置了(对于输入模式,速度设置是多余的),mode值仍保存在结构体中,只要设置一下不一样的下拉即可,然后再用这个结构体去设置这个WK_UP按键。
回复

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2014-12-19
在线时间
710 小时
发表于 2016-1-15 09:47:48 来自手机 | 显示全部楼层
mode和speed前面已经设置过了,没必要重复,用的是同一个结构体。
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2015-12-17
在线时间
9 小时
 楼主| 发表于 2016-1-15 10:20:41 | 显示全部楼层
lvehe 发表于 2016-1-15 09:47
mode和speed前面已经设置过了,没必要重复,用的是同一个结构体。

你好,那既然用的一个结构体,那两个GPIO_Init取结构的时候定义了两个GPIO口和上拉或者下拉,用哪个阿,他怎么区分的啊。。还是不太懂
回复

使用道具 举报

14

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2015-12-28
在线时间
50 小时
发表于 2016-1-15 11:27:19 | 显示全部楼层
因为在上面管脚2/3/4以已经设置了,那是一个结构体,只有当你下面的gpio需要设置与上面不同的时候才需要重新设置,当然你也可以给gpioa0设置100m的速度,效果是一样的。
回复

使用道具 举报

3

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2015-3-7
在线时间
43 小时
发表于 2016-1-15 12:23:43 | 显示全部楼层
具体是上拉输入还是下拉输入模式,这个依据按键的电路来设置的。看下按键电路。输入模式下,有无速度的设置都没有影响。速度模式只在输出模式下作用~
为人莫作千年计,三十河东四十西,莫欺少年穷。
回复

使用道具 举报

35

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
476
金钱
476
注册时间
2015-12-27
在线时间
116 小时
发表于 2016-1-15 20:14:53 | 显示全部楼层
我觉得就是,如果不另外设置Speed和Mode的话,GPIO引脚就会重复上一次的Speed和Mode,比如你第一次设置的Mode为Out(通用输出模式),第二次设置的Mode为AN(模拟输入模式),如果你第三次没有设置Mode的话,那么你在第三次所定义的引脚的Mode功能就会默认为你在第二次设置的Mode的功能,我是这么理解的,我也是刚入门的,O(∩_∩)O哈哈~
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 00:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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