CH592电池低电压监控问题

启用了HAL_SLEEP。

如果只是配置PowerMonitor但不启用中断,即使读了R8_BAT_STATUS寄存器的值,不管什么电压都是0。

如果启用了中断,PowerMonitor的配置会生效,可以正常检测到低电压,但是中断会无限循环的进入。


问题1、

可以不启用中断,只用PowerMonitor配置,然后手动R8_BAT_STATS读寄存器值吗?

问题2、

为什么启用中断WDOG_BAT_IRQHandler后,触发低电压后会不停地进入中断,如何正确的清中断?在WDOG_BAT_IRQHandler中断中尝试过

    WWDG_ClearFlag();

    FunctionalState st = DISABLE;

    WWDG_ITCfg(st);

都无效,还是不停的进




问题1:可以自行尝试,理论上可以的,使能中断后,中断标志的产生与代码无关。

问题2:不用清中断,电压抬高后自动清掉中断。

低电压功能参考使用:https://www.cnblogs.com/debugdabiaoge/p/16131541.html


已经测试了,只有启用中断后电池状态寄存器才能有值。

另一个问题就是如果不清除中断,会不停的进入中断程序。我在中断程序中把中断给禁用了,用的时候手动开启中断,进入中断程序再自动禁用,就好了,就是不知道这么做是不是对的


image.png

可以试试把这个地方的参数调低一些。频繁进入中断,有可能是低电压阈值设置的比较高了


只有登录才能回复,可以选择微信账号登录