找回密码
 立即注册
楼主: topofhill

8H8K64U, P30 P31 休眠设置问题

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:460
  • 最近打卡:2025-05-03 07:38:35
已绑定手机
已实名认证

110

主题

2224

回帖

5470

积分

版主

积分
5470
发表于 2024-9-29 14:50:50 | 显示全部楼层
topof*** 发表于 2024-9-29 14:47
打印休眠后  直接打印唤醒了

按照stc官方例程中,给休眠部分代码前后都加入4~6个nop指令试试呢?
感觉可能是切换模式引起电平切换,导致掉电被重新唤醒了
Screenshot_2024-09-29-14-48-22-997_cn.wps.moffice_eng.png

回复 支持 反对

使用道具 举报 送花

2

主题

6

回帖

33

积分

等待验证会员

积分
33
发表于 2024-9-29 15:15:27 | 显示全部楼层
Debu*** 发表于 2024-9-29 14:39
检查外设是不是关的不彻底,比如ADC电源、USB电源、内部32K时钟、比较器
还有其他电路的耗电 ...

应该是30  31  漏电给蓝牙的问题  ,同时赋值低电平,休眠为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) ();        

但这个代码重启不彻底
回复 支持 反对

使用道具 举报 送花

2

主题

6

回帖

33

积分

等待验证会员

积分
33
发表于 2024-9-29 15:23:59 | 显示全部楼层
再次测试 ((void (code *) (void)) 0x0000) (); 代码不能抹去30=0;31=0;内存

有没有别的命令   直接像冷起动那样的效果
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:460
  • 最近打卡:2025-05-03 07:38:35
已绑定手机
已实名认证

110

主题

2224

回帖

5470

积分

版主

积分
5470
发表于 2024-9-29 15:24:19 | 显示全部楼层
topof*** 发表于 2024-9-29 15:15
应该是30  31  漏电给蓝牙的问题  ,同时赋值低电平,休眠为2u

         printf("休眠.\r\n");

软重启可以试一下这个代码
IAP_CONTR=0x60;
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 05:53 , Processed in 0.124679 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表