F020为什么IO死锁?有什么解决方法?谢谢大家

[复制链接]
 楼主| zyboy 发表于 2009-5-23 23:07 | 显示全部楼层 |阅读模式
我在用F020单片机的时候,发现IO作为输入的时候,实际输入低电平(万用表量过),但寄存器读出的是1,刚开始怀疑输入信号有脉冲把IO口冲死,后来用示波器看没看到什么大脉冲,IO口加了TVS管也没用。最后把IO口由漏极开路方式改为推挽方式,反而好了!大家知道什么原因吗?谢谢!

一个小插曲:我把这个问题在新华龙反映,有个好像就是那个杨工在我提的问题后面留了手机号。我以为他是新华龙的,把电话抄了下来,后来我的老大打过去问他,不知道他说的什么,老大接完电话还训我,说不知道他说什么,那找的这个人。过了一会,他还发了个短信:意思是说给他几百块钱,再提供解决方案!我晕!
jerkoh 发表于 2009-5-23 23:19 | 显示全部楼层

re

设置弱上拉呀
 楼主| zyboy 发表于 2009-5-24 15:19 | 显示全部楼层

弱上拉也没用

我IO口接了上拉电阻,程序里面设不设置弱上拉都不行!
zhaoyu2005 发表于 2009-5-24 20:40 | 显示全部楼层

没用过这个片子

不过觉得楼主说的有问题,漏极开路(OD,集电极开路OC)和推挽都是设置为输出的。
xuyaqi 发表于 2009-5-24 20:45 | 显示全部楼层

不同于标准51,c8051f系列单片机有些IO口(如P4-P7)读写前是要先设置寄存器地址的,是否你忽略了此问题?
lyjian 发表于 2009-5-24 21:20 | 显示全部楼层

把你的程序贴出来

 楼主| zyboy 发表于 2009-5-24 22:23 | 显示全部楼层

用了两年多了,不可能是程序的问题

/********************************************************************
* Function Name  : PORT_Init
* Description    : Configure the Crossbar and GPIO ports
* Input          : None
* Output         : None
* Return         : None
******************************************************************/
void PORT_Init(void)
{
   XBR0    = 0x07;                     // Enable UART0 SPI I2C
   XBR1    = 0x14;                     // Enable INT0 INT1
   XBR2    = 0x44;                    // weak pull-ups
   //XBR2    = 0xC4;        // Disable weak pull-ups

   P0MDOUT = 0x00;    //P0.6=SDA; P0.7=SCLK                  
   P1MDOUT = 0x00;    //P1.5=IO_RESET                    
   P2MDOUT = 0x00;    //P2.0-P2.7 Osw_ctrl                
   P3MDOUT = 0x00;    //P3.3=CLOSEDOG                
   P74OUT  = 0x00;                                                 
}

xuyaqi 发表于 2009-5-24 23:43 | 显示全部楼层

如果是老程序是否是管脚虚焊?

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

本版积分规则

101

主题

356

帖子

0

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

101

主题

356

帖子

0

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