打印休眠后直接打印唤醒了
按照stc官方例程中,给休眠部分代码前后都加入4~6个nop指令试试呢?
感觉可能是切换模式引起电平切换,导致掉电被重新唤醒了
DebugLab 发表于 2024-9-29 14:39
检查外设是不是关的不彻底,比如ADC电源、USB电源、内部32K时钟、比较器
还有其他电路的耗电 ...
应该是3031漏电给蓝牙的问题,同时赋值低电平,休眠为2u
printf("休眠.\r\n");
P3M0 = 0x00; P3M1 = 0x03;
P32=1;
IT0 = 0; //使能INT0上升沿和下降沿中断
//IT0 = 1; //使能INT0下降沿中断
EX0 = 1; //使能INT0中断
EA = 1;
//不能配置高阻输入,不能休眠
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
PCON |= 0x02; //Powerdown
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
P3M0 = 0x00; P3M1 = 0x00;
printf("唤醒.\r\n");
这种写法还是立即打印唤醒
能不能 30 31都付0唤醒后直接软重启代码。
类似 ((void (code *) (void)) 0x0000) ();
但这个代码重启不彻底 再次测试 ((void (code *) (void)) 0x0000) (); 代码不能抹去30=0;31=0;内存
有没有别的命令 直接像冷起动那样的效果 topofhill 发表于 2024-9-29 15:15
应该是3031漏电给蓝牙的问题,同时赋值低电平,休眠为2u
printf("休眠.\r\n");
软重启可以试一下这个代码
IAP_CONTR=0x60;
页:
1
[2]