OpenEdv-开源电子网

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

关于GPIO口下拉输入的一个疑问。

[复制链接]

12

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-1-22
在线时间
0 小时
发表于 2014-8-25 19:10:28 | 显示全部楼层 |阅读模式
5金钱

我使用PA.3PA.6四个IO口作为按键,按键公共端口接3.3V的VCC,然后IO口设置为下拉输入,当按键按下的时候对应的LED灯点亮。LED灯对应的IO口是PB.12-PB.15。

现在的情况是,给开发板上电之后,PB.15和PB.12的LED灯就直接亮了(对应的按键IO口是PA.3和PA.6),其他的两个灯可以通过按键来点亮。

我换过其他的IO口实验,也是有类似的情况发生,请问这是怎么回事呢?

我使用的是MINI 开发板

这个是按键的相关函数

[mw_shl_code=c,true]#include "key.h" #include "delay.h" //按键初始化函数 void KEY_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);                                    //使能PORTA时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;                 //设置成下拉输入 GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA } void KEY_Scan(void) { if(PAin(3)==1) GPIO_ResetBits(GPIOB,GPIO_Pin_12); if(PAin(4)==1) GPIO_ResetBits(GPIOB,GPIO_Pin_13); if(PAin(5)==1) GPIO_ResetBits(GPIOB,GPIO_Pin_14); if(PAin(6)==1) GPIO_ResetBits(GPIOB,GPIO_Pin_15); }[/mw_shl_code]



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-8-9
在线时间
0 小时
发表于 2014-8-25 20:11:41 | 显示全部楼层
回复

使用道具 举报

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-8-9
在线时间
0 小时
发表于 2014-8-25 20:14:44 | 显示全部楼层
PB的端口做初始化处理了么
回复

使用道具 举报

12

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-1-22
在线时间
0 小时
 楼主| 发表于 2014-8-25 20:19:45 | 显示全部楼层
回复【3楼】骑驴闯天下:
---------------------------------
PB是处理了的。
如果我把键盘设置成为上拉,那么就一切正常了。
但是就是下拉不行了
回复

使用道具 举报

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-8-9
在线时间
0 小时
发表于 2014-8-25 20:38:44 | 显示全部楼层
普通只有几个 按键的键盘的公共端一般是接地的,另一端使用上拉电阻
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-25 23:12:34 | 显示全部楼层
得看你开发板原理图.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

12

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-1-22
在线时间
0 小时
 楼主| 发表于 2014-8-26 09:55:50 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
我用的MINI开发板,然后4个按键和LED灯都是自己在板子上焊的。
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-14
在线时间
19 小时
发表于 2014-8-26 10:50:44 | 显示全部楼层
请问下,你的LED灯有地方可以关掉吗?
会不会一上电,对应的条件刚好成立,所以对应的LED就亮了
回复

使用道具 举报

12

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-1-22
在线时间
0 小时
 楼主| 发表于 2014-8-26 10:57:19 | 显示全部楼层
回复【8楼】kuforce:
---------------------------------
这个我倒是没有考虑过的,一开始我有写语句把灯全部关闭的
回复

使用道具 举报

12

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-1-22
在线时间
0 小时
 楼主| 发表于 2014-8-26 11:19:17 | 显示全部楼层
回复【8楼】kuforce:
---------------------------------
我现在加了一个按键来关掉所有的LED灯,
我现在的情况是,上电有两个灯会亮着,没有亮的那两个灯可以通过按键来控制点亮,然后我按下控制关所有LED灯的按键的时候,上电就亮的那两个灯还是亮着。
如果我的按键公共端接地,然后输入改成上拉,那么就一切正常了。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-26 23:28:29 | 显示全部楼层
回复【7楼】why always me:
---------------------------------
那你要看下原理图,有没有和其他外设冲突了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-2 06:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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