找回密码
 立即注册
查看: 152|回复: 0

示例中的程序,比较器唤醒MCU好像有点问题。

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:49
  • 最近打卡:2025-11-28 13:41:56
已绑定手机

22

主题

33

回帖

616

积分

高级会员

积分
616
发表于 2025-11-7 17:30:29 | 显示全部楼层 |阅读模式
81-内部RTC时钟低功耗休眠唤醒-比较器检测电压程序

测试休眠后无法唤醒,有外部低速晶振。


// P35 = 1; //不比较时,对外设置为1,I/O口浮空,省电
把IO浮空注释掉就可以正常唤醒


原理图是这样画的,基本于示例图一样
截图202511071727261167.jpg
截图202511071727543273.jpg
截图202511071728064362.jpg

  1. //========================================================================
  2. // 函数: void Ext_Vcc_Det(void)
  3. // 描述: 外部电源检测函数。
  4. // 参数: 无.
  5. // 返回: 无.
  6. // 版本: V1.0, 2022-10-10
  7. //========================================================================
  8. void Ext_Vcc_Det(void)
  9. {
  10.     P35 = 0;        //比较时,对外输出0,做比较电路的地线
  11.     CMPEN = 1;     //使能比较器模块
  12.     _nop_();
  13.     _nop_();
  14.     _nop_();
  15.     if(CMPRES)     //判断是否CMP+电平高于CMP-,外部电源连接
  16.     {
  17.                 printf("外部电源连接\r\n");
  18.         P40 = 0;                //LED Power On
  19.         P6 = ~ledNum[ledIndex];        //输出低驱动
  20.         ledIndex++;
  21.         if(ledIndex > 7)
  22.         {
  23.             ledIndex = 0;
  24.         }
  25.     }
  26.     else
  27.     {
  28.                 printf("休眠\r\n");
  29.         CMPEN = 0;      //关闭比较器模块
  30. //        P35 = 1;        //不比较时,对外设置为1,I/O口浮空,省电
  31.         P40 = 1;                //LED Power Off
  32.         _nop_();
  33.         _nop_();
  34.         PCON = 0x02;  //STC32G 芯片使用内部32K时钟,休眠无法唤醒
  35.         _nop_();
  36.         _nop_();
  37.         _nop_();
  38.         _nop_();
  39.         _nop_();
  40.         _nop_();
  41.     }
  42. }
复制代码
截图202511071729543533.jpg
QT上位机小佬,努力学习嵌入式中,感谢各位大佬指导
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-3 05:04 , Processed in 0.099450 second(s), 45 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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