哎,不知道咋回事。大家看一下这个问题,分析一下是什么问题。MCU:dsPIC30F5011
两个按键接到了 PORTB3 和 PORB4 上,都有上拉电阻,键按下时,端口为低电平。
带着仿真器调试运行,程序运行的非常好,结果与预期的一样。但将程序下载到单片机后上电运行,就一直检测到 PORTB3和PORTB4为低电平,这是怎么回事?实际测量PORB3 和PORB4 一直为高电平。
下面是程序判断部分:
/****************************************/
/* 函数功能 : 按键键值编码
输入参数 :
输出参数 :
作者 :
网址 :
时间 : 2011-04-21
备注 :
版本 : V1.0 初版
*/
/***************************************/
uint8 KeyValueCode(void)
{
uint8 KeyValueTemp=KeyValueNull;
if(PORTBbits.RB3 == 0)
{
KeyValueTemp=0X01;
Uart1Print("**KEY+**");
}
if(PORTBbits.RB4 == 0)
{
KeyValueTemp=0X02;
Uart1Print("**KEY-**");
}
if((PORTBbits.RB3 ==0) && (PORTBbits.RB4 == 0))
{
KeyValueTemp=0X03;
Uart1Print("**KEY ALL**");
}
//KeyValueTemp=(~KEY1) & 0X01;
//KeyValueTemp |=(((~KEY2) & 0X01) << 1);
return KeyValueTemp;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
-----------------------------------------------------------------------
端口初始化了,这两个已经设为输入端口。
仿真时正确这个让我很无解啊,仿真时查看端口寄存器,结果都正确,郁闷郁闷
RB口与AD口复用,上电后默认是AD口。增加了ADPCFG=0XFFFF,这个就OK了。
哎,手册上没有见到RB默认是AD口的提醒。
仿真时一切正常,仍然让我很奇怪!
一周热门 更多>