按照手册和网上查询的办法,未用IO的推荐方法之一为设置为“输出”,不但抗干扰,而且低功耗。但是,我用下面的程序设置后:
/*
未用的IO包括:
1、P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 11111110:0XFE
2、P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 00111111:0X3F
3、P3.7 10000000:0X80
4、P4.0 P4.1 P4.2 P4.3 P4.4 P4.5 P4.6 P4.7 11111111:0XFF
*/
void unused_io(void)
{
P1DIR |= 0xFE;
P2DIR |= 0x3F;
P3DIR |= 0x80;
P4DIR |= 0xFF;
}
在LPM4模式下,不但功耗没有降低,反而增加了十几个微安,什么原因?
未用IO该如何处理能降低功耗?
谢谢
Jason Guo:
不用的IO口设置成输出是正确的.
增加的功耗可能和外围电路有关.需要根据情况配置输出高或者低
qingmin zhang:
回复 Jason Guo:
所有未用IO都是悬空的,没有焊出来,外围电路基本上已经没有了,把所有外设焊接掉,只保留了电源部分,也还是这样。
其他条件:没有使用外部晶体,4.7K上拉的复位电阻
Tom Xu:
回复 qingmin zhang:
我觉得不能仅仅设置为输出,需要输出0 或者输出1,
Fuchong Wang:
回复 Tom Xu:
楼上,输出寄存器不是默认有值么?
关注这个帖子,希望得到明确的原因,楼主的实验是否确实?
如果设为输入,但是都接地怎么样呢?
什么时候有时间再看看端口的内部电路图