[求助] MSP IO端口输入内置上拉电阻问题

yylooker   2011-7-18 10:35 楼主
用的是MSP430 F5529,想用P2.5做输入,检测一个普通的急停开关,常置高,按下时拉低;

原来用1K的限流电阻将P2.5与3.3V电源相连,但是程序不能检测到高(尝试100欧姆的也不行);后来去掉限流电阻,就可以了;

考虑到安全性问题,查阅了用户手册后,想用内置的上拉电阻;但是程序如下声明:

P2DIR &= ~0x20;
P2REN  |= 0x20;
P2OUT  |= 0x20;

却发现P2.5默认不是高、我可以确认程序没问题

想问下:内置上拉电阻是不是只能提高驱动能力,而不是将输入端口默认高电平???
       如果是的话,我是不是应该将P2.5通过限流电阻接到VCC(默认高),然后按下急停时拉低????
[ 本帖最后由 yylooker 于 2011-7-18 10:54 编辑 ]

回复评论 (18)

来个人给解解疑惑啊
点赞  2011-7-18 10:47
 1、没玩过MSP430,打酱油路过唠叨两句供参考。
 2、外接上拉至3.3V电源却测不到高电平忒没道理,这点至关重要,请好好查查。容易联想到的问题是I/O方向没设好,或者CPU不是用的3.3V电源。
 3、“默认高电平”的表述不太理解,如果仅使用了内置上拉而未外接电阻,那么在CPU初始化完成之后该I/O脚被置为高电平。
 4、内置上拉只是在需要时为了省一个外接电阻,一般跟提高驱动能力扯不上关系,严格讲没准还会降低驱动能力呢。
点赞  2011-7-18 11:52
我也觉得上拉了测不到高电平 忒没道理,问题是我绝对把它申明成输入了,
愁人,我去看下电压是不是有问题,
点赞  2011-7-18 12:11
430系列默认IO就是输入吧?
P2DIR &= ~0x20;
P2REN  |= 0x20;
P2OUT  |= 0x20;
你本身是读取他IO口上的电平信号却又让他输出为高。不解。
点赞  2011-7-19 20:30
楼上有理
点赞  2011-7-20 09:30
信号输入脚 如果没有上拉 下拉  是悬空的 这样输入的有可能是0  有可能是1   就乱了    输出上拉下拉也是防止悬空状态    还有就是增加驱动能力
点赞  2011-7-20 09:37
上拉就是如果没有输入信号则此时I/O状态为1,下拉相反。
点赞  2011-7-20 09:37
引用: 原帖由 水货老手 于 2011-7-20 09:37 发表
上拉就是如果没有输入信号则此时I/O状态为1,下拉相反。


明白是明白了,但是我声明成上拉电阻  没有效果,无信号输入时还是低。。
点赞  2011-7-20 10:06

回复 5楼 deweyled 的帖子

我那个不是输出为高。

P2DIR &= ~0x20;   // P2.5为输入
P2REN |= 0x20;     //p2.5 电阻使能
P2OUT |= 0x20;     //电阻选用上拉电阻
点赞  2011-7-20 10:07
6.jpg
点赞  2011-7-20 10:43

vcc是3.3 接的。
没发现什么问题
换了个板子还是这样
点赞  2011-7-20 15:12
我刚万用表量过,电压是3点多,悬空情况下它自己认为高电平,说明你程序没错
点赞  2011-7-20 15:39

回复 楼主 yylooker 的帖子

各位大神请问我用430给553 控制伺服电机 问什么加上反馈以后会把产生PWM的管脚拉底啊
接上上拉电阻  频率就没法改变了
点赞  2012-8-14 13:15
我也遇到楼主一样的问题。。
DIR=0 OuT=1 REN=1
默认IN不是1而是0。好奇怪。。
点赞  2012-9-8 14:57
内置上下拉电阻  典型值为25k还是35k的  你自己按分压算去吧
点赞  2012-9-8 22:35
引用: deweyled 发表于 2011-7-19 20:30
430系列默认IO就是输入吧?
P2DIR &= ~0x20;
P2REN  |= 0x20;

最后一句是加上拉电阻
点赞  2014-2-6 19:54
。挖坟
注意这句话“DCOR:Control Bit From Basic Clock Module, If it is set, P2.5 Disconnected From P2.5 Pad”
点赞  2014-5-31 20:34
你P2.5是触摸板吗,触摸板的电平和按键是刚好相反的吧。。。
点赞  2014-10-8 18:39
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复