一开始用电流表监测电流为0.4uA,然后按了一下sw1,进入到HandleKeys()函数。在HandleKeys()函数中什么也没做,直接返回。按理说,我没有别的任务,2541应该再次进入PM3,但是电流涨到80uA左右下不来了。
如果在HandleKeys()中加上halSleep(0),可以强行进入PM3,但是下次按键又无法响应了。
请高手给个思路。
Susan Yang:
进入PM3的条件 osal_timeout = 0;以及 llTimeout = 0;
是不是您的程序内还有其他定时任务?
Ming Chen8:
回复 Susan Yang:
多谢你的回答,问题找到了,是因为我只用sw1,没用sw2,所以在io设置时,设的是P0DIR = 0xFE; P0 = 0x01(P0.1设为输出低电平,P0.0设为输入高电平)。现在改回P0DIR = 0xFC; P0 = 0x03就正常了。看来就算sw2不用,也还是不能自己设置,除非修改hal_ley代码。