打印

香主,IO口的上下拉电阻使用是否有什么特殊的地方?

[复制链接]
3943|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
playzwm|  楼主 | 2009-7-20 14:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在发现,设置了下拉按键,外部没接下拉电阻,在按键按下接收到一次键值之后,却发现,无法再次触发了,不知为何?
沙发
香水城| | 2009-7-20 14:37 | 只看该作者

请说清楚一些:什么芯片?如何触发?软件怎么处理的?

硬件如何连接按键的?

使用特权

评论回复
板凳
playzwm|  楼主 | 2009-7-20 14:44 | 只看该作者

硬件同:香主,救急,关于RTC时钟

按键采用下拉电阻,VDD直接触发,软件貌似是扫描方式,另作为输入判断也会出问题,不知哪有问题,需要软件什么部分,我找SW要

使用特权

评论回复
地板
playzwm|  楼主 | 2009-7-20 14:50 | 只看该作者

按键及输入图纸

使用特权

评论回复
5
playzwm|  楼主 | 2009-7-20 14:54 | 只看该作者

按键

使用特权

评论回复
6
香水城| | 2009-7-20 15:12 | 只看该作者

软件处理是什么思路?什么流程?

扫描?中断?混合?

使用特权

评论回复
7
一朝成名| | 2009-7-20 15:14 | 只看该作者

模拟器就属于软件处理器~

比如说SkyEye

使用特权

评论回复
8
etomeok| | 2009-7-20 19:19 | 只看该作者

IO 配置输入下拉的问题

IO配置为输入,软件定时扫描(读这些口),测试发现如果某个按键按下,即该口 被上拉为高,读这个口也为高,但是按键释放后,这个口的状态就一直为高,而不是被配置的下拉作用置低。

配置如下    
/* Configure PD.09-15 (09:ENTER,10:DOWN,11:UP,12:ESC,13:STOP,14:STARTB,15:STARTA) as output*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10| GPIO_Pin_11| GPIO_Pin_12| GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
    GPIO_Init(GPIOD, &GPIO_InitStructure);

扫描IO的代码如下
status = (GPIO_ReadInputData(GPIOD)&0xfe00)>>9;

使用特权

评论回复
9
etomeok| | 2009-7-20 19:23 | 只看该作者

IO 配置输入下拉的问题

补充,外部接了下拉电阻这个问题就ok了

使用特权

评论回复
10
香水城| | 2009-7-20 19:25 | 只看该作者

很可能是下拉太弱导致

请用示波器看看这个引脚,压下按键和施放按键后引脚上的电平变化。


如果加外部下拉能够解决问题,有可能电路上的寄生电容太大,检查一下PCB的设计。

使用特权

评论回复
11
zhaoyu2005| | 2009-7-21 10:01 | 只看该作者

应该是电路设计的问题

我用上拉输入,接按键很正常,检测按键很正常

使用特权

评论回复
12
playzwm|  楼主 | 2009-7-21 10:04 | 只看该作者

香主,看资料上,内置上下拉电阻阻值应该是40k左右,

很可能是下拉太弱导致?这句话如何解释,

使用特权

评论回复
13
香水城| | 2009-7-21 10:28 | 只看该作者

我说的下拉太弱是相对系统的寄生电容而言

如果你的系统的寄生电容较大,40K左右的下拉电阻不能很快地把这个电容的电量释放掉,则会产生你看到的现象。

现在你外加了下拉电容,解决了问题,佐证了我的这个判断。

使用特权

评论回复
14
playzwm|  楼主 | 2009-7-21 17:05 | 只看该作者

香主,貌似并非如此

在作为输入口处理时,并未发生VDD电源触发,却有时可检测到高,还可以恢复,电路依然如此,如果解释为寄生电容,那么这种状况不可解释,我觉得内部的上下拉不是很可靠,具体什么原因,不知道。

使用特权

评论回复
15
香水城| | 2009-7-21 17:16 | 只看该作者

你有什么理由怀疑内部的上下拉不是很可靠?

我不反对你的怀疑,但我需要合理的解释。

我在10楼建议你:请用示波器看看这个引脚,压下按键和施放按键后引脚上的电平变化。不知道结果如何?如果你能看到一个缓慢的放电过程,则证明了我的判断。

如果你认为内部的上下拉不是很可靠,也就是说是时好时坏,这很难解释,难道说硅片上也有虚焊的问题,这是不可能的。

请看看STM32参考手册上的GPIO端口的框图,内部的上下拉是由MOS管控制的。

使用特权

评论回复
16
chizhafengyun| | 2013-9-28 21:54 | 只看该作者
VCC与IO之间没有接限流电阻?
是不是上电一次,IO就烧掉了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

82

帖子

0

粉丝