OpenEdv-开源电子网

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

GPIO上拉下拉设置

[复制链接]

12

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-3-13
在线时间
0 小时
发表于 2015-3-28 17:35:25 | 显示全部楼层 |阅读模式
5金钱
在按键的实验中,要设置按键的上下拉,如图


KEY0 PC5
KEY1 PA15
WK_UP PA0
根据上拉下拉电阻的定义,PA15 /PC5应该设置成下拉“IPD"

代码中上下拉是不是设置反了?还是我理解错了?


GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_15;//PA15  
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入  
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化 GPIOA15    

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5;//PC5
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入  
GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化 GPIOC5    

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;//PA0
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0 设置成输入,默认下拉    
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化 GPIOA.0 
QQ截图20150328173044.png

最佳答案

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

反着想一下就明白了   如果KEY0( KEY1)设置为下拉,IO口被拉低,然后你按下KEY0(或者KEY1),IO状态还是低 那你要怎样检测究竟有没有按键按下呢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-3-28 17:35:26 | 显示全部楼层
反着想一下就明白了   如果KEY0( KEY1)设置为下拉,IO口被拉低,然后你按下KEY0(或者KEY1),IO状态还是低
那你要怎样检测究竟有没有按键按下呢
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-3-28 17:35:26 | 显示全部楼层
回复【5楼】Youngw:
---------------------------------
GPIO_Mode_IPU,GPIO_Mode_IPD  输入上下拉模式,具体上拉还是下拉由GPIOx->ODR对应位决定,设置为1则是内部上拉,设置为0内部下拉
回复

使用道具 举报

3

主题

794

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
1502
金钱
1502
注册时间
2015-3-3
在线时间
460 小时
发表于 2015-3-28 18:33:02 | 显示全部楼层
按照你的想法配置,按键就没有作用了
回复

使用道具 举报

12

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-3-13
在线时间
0 小时
 楼主| 发表于 2015-3-28 19:10:40 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
回复【3楼】hpeng1874:
---------------------------------
PIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU

看楼上都从电压的角度来看
表明这语句只是说明输入电压信号,与上拉电阻无关?
从电路理论看,只需要加一个电阻,称之为上下拉,GPIO_Mode_IPU究竟表示什么意思
回复

使用道具 举报

12

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-3-13
在线时间
0 小时
 楼主| 发表于 2015-3-28 19:14:51 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
回复【2楼】lycreturn:
---------------------------------
“这里需要注意的是:KEY0 和 KEY1 是低电平有效的,而 WK_UP 是高电平有效的,除了 KEY1 有上拉电阻(与 JTDI 共用),其他两个都没有上下拉电阻,所以,需要在 STM32 内部设 置上下拉”

原文这么解释的,我也是按照电压的来考虑,但和原文的解释的不同。所以求助各路大神
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 08:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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