CH582低功耗的动态开启和关闭如何实现?

官方从机历程中,开启低功耗是通过配置宏“HAL_SLEEP”实现低功耗的开启。程序运行过程中,虽然能通过GPIO和任务调度来进行唤醒,但仍然无法正常使用定时器(配置宏“HAL_SLEEP”实现低功耗的开启,会在睡眠时关闭定时器,影响定时器精度),如何实现在程序运行过程中动态“配置宏HAL_SLEEP实现低功耗的开启和关闭”?

官方好,我们公司产品要求,当检测到电压波动时,就关闭睡眠模式(不是唤醒,是关闭配置宏“HAL_SLEEP”,因为睡眠模式会影响定时器,我们公司需要定时器做电压高频率的电压采集),定时20min后又开启睡眠模式


您好,宏定义无法在代码编译后修改。

针对您的应用,是否进入休眠可以在代码中动态调整。

您代码里“检测到电压波动时”,置标志变量A;在sleep.c中,CH58X_LowPower函数内一开头,添加判断标志变量A来决定是否能够继续往下执行休眠。若需要保持唤醒状态,则在CH58X_LowPower中判断标志A后直接return 3,打断休眠即可。


官方辛苦了


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