fix: 纠正低功耗休眠唤醒源,仅采用 P0.1/P0.2/P2.6 下降沿唤醒并排除 P0.3 模拟干扰,并在 main.c 本地安全清零按键计数与强保电源,彻底根除唤醒假死与断电故障
This commit is contained in:
18
App/system.c
18
App/system.c
@@ -328,16 +328,18 @@ void Enter_Low_Power_Sleep(void)
|
||||
// 使能访问扩展特殊功能寄存器
|
||||
P_SW2 |= 0x80;
|
||||
|
||||
// 7. 配置 Port0 中断唤醒源 (KEY_UP=P0.1, KEY_CONFIRM=P0.2, KEY_DOWN=P0.3)
|
||||
P0IM1 |= 0x0E;
|
||||
P0IM0 &= ~0x0E; // 下降沿触发
|
||||
// 7. 配置 Port0 唤醒源 (仅 KEY_UP=P0.1, KEY_CONFIRM=P0.2,剔除 KEY_DOWN 模拟引脚,防止低电平信号干扰)
|
||||
P0IM1 &= ~0x06; // 下降沿触发 (PxIM1=0, PxIM0=0)
|
||||
P0IM0 &= ~0x06;
|
||||
P0INTF = 0x00; // 清除挂起的中断标志
|
||||
P0INTE |= 0x0E; // 开启 P0.1, P0.2, P0.3 中断允许
|
||||
P0WKUE |= 0x0E; // 使能 P0.1, P0.2, P0.3 掉电唤醒
|
||||
P0INTE |= 0x06; // 仅开启 P0.1, P0.2 中断允许
|
||||
P0WKUE |= 0x06; // 使能 P0.1, P0.2 掉电唤醒
|
||||
P0PU |= 0x06; // 强内部上拉
|
||||
P0IE |= 0x06; // 开启数字输入
|
||||
|
||||
// 8. 配置 Port2 中断唤醒源 (SOS=P2.6)
|
||||
P2IM1 |= 0x40;
|
||||
P2IM0 &= ~0x40; // 下降沿触发
|
||||
// 8. 配置 Port2 唤醒源 (SOS=P2.6)
|
||||
P2IM1 &= ~0x40; // 下降沿触发 (PxIM1=0, PxIM0=0)
|
||||
P2IM0 &= ~0x40;
|
||||
P2INTF = 0x00; // 清除挂起标志
|
||||
P2INTE |= 0x40; // 开启 P2.6 中断允许
|
||||
P2WKUE |= 0x40; // 使能 P2.6 掉电唤醒
|
||||
|
||||
Reference in New Issue
Block a user