单片机普通IO口外接上拉电阻

[复制链接]
 楼主| 我爱罗1991 发表于 2012-8-25 16:06 | 显示全部楼层 |阅读模式
普通的三态门IO口,5V电源,外接3.3K的上拉电阻。用IO模拟IIC,设置为输入表示“1”,但是输出0的时候用万用表量电压有2.6V的电压。IO口悬空输出0正常,这是神马原因?
chenbb8 发表于 2012-8-25 16:09 | 显示全部楼层
那就将上拉加大到10K咯
gx_huang 发表于 2012-8-25 16:13 | 显示全部楼层
原因很多了,可能软件错误,输出PWM波了,可能硬件问题,电阻太小了。
总之,初学者的问题是不仔细,不会自己测试分析故障。
airwill 发表于 2012-8-25 16:14 | 显示全部楼层
上拉电阻太小
不过不清楚楼主什么器件, 怎么 I2C 下拉的驱动能力这么差呢?
dlyt_test001 发表于 2012-8-25 16:18 | 显示全部楼层
“IO口悬空输出0正常”是指IO口什么也不接吗,包括上拉电阻?
“但是输出0的时候用万用表量电压有2.6V的电压”是指IO口只接上拉电阻,还是即接上拉电阻也接I2C器件?
上拉电阻的大小应该不成问题,高度怀疑是硬件问题。需要把以上两个问题搞清楚才好做出判断。
yewuyi 发表于 2012-8-25 16:22 | 显示全部楼层
芯片型号?用的IO口是那个?
NE5532 发表于 2012-8-25 16:55 | 显示全部楼层
用示波器看下,这个端口上是稳定电平还是有东西在跑。
 楼主| 我爱罗1991 发表于 2012-8-25 18:27 | 显示全部楼层
本帖最后由 我爱罗1991 于 2012-8-25 18:32 编辑

5# dlyt_test001
接上拉电阻又接IIC器件的时候输出0用万用表测得是2.6的电平,去掉上拉电阻只和IIC器件接时输出0正确
 楼主| 我爱罗1991 发表于 2012-8-25 18:27 | 显示全部楼层
7# NE5532 嗯,对对,这个我疏忽了,要看下
 楼主| 我爱罗1991 发表于 2012-8-25 18:32 | 显示全部楼层
6# yewuyi
我用的是PIC16F877的E1和E0口,设置ADCON1为0x07,然后用TRISE控制输入和输出方向。
pang123hui 发表于 2012-8-25 19:40 | 显示全部楼层
不是上拉电阻的大小问题,你是接着iic器件量的吧,建议你断开,io口只接上拉量一下,应该不会是软件的问题
 楼主| 我爱罗1991 发表于 2012-8-25 20:22 | 显示全部楼层
11# pang123hui 难道是器件的问题?回头我试下。
mgfzhh 发表于 2012-8-25 22:21 | 显示全部楼层
将上拉加大到10K
程序包子 发表于 2012-8-25 23:21 | 显示全部楼层
如果试一下大一点的上拉电阻为10k不行,可以考虑到器件的问题,还有就是按照NE5532前辈所说,用示波器量一下看一下波形,一切一目了然。
ckr88888 发表于 2012-8-26 08:56 | 显示全部楼层
大家好
ckr88888 发表于 2012-8-26 08:57 | 显示全部楼层
刚来的多多帮助
 楼主| 我爱罗1991 发表于 2012-8-27 09:34 | 显示全部楼层
本帖最后由 我爱罗1991 于 2012-8-27 09:35 编辑

断开IIC器件,只接上拉电阻,用示波器测发现输出PWM波了;把上拉电阻断开,输出0正常,这是什么原因?
 楼主| 我爱罗1991 发表于 2012-8-27 10:10 | 显示全部楼层
是软件问题,在main函数里没有加while(1)循环让它停住,结果就不断初始化拉高,然后拉低。非常感谢大家的分析,学到了很多东西。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

65

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部