我想通过条件开启或关闭HAL_SLEEP,该如何做?

如题,有什么方法或者例程吗?

可以条件开启与唤醒,直接调用lowpower函数就可以了。

唤醒的话就通过GPIO唤醒即可。

可以直接参考PM例程,或者参考下这篇博客:

CH573芯片Sleep说明(RTC程序说明) - SweetTea_lllpc - 博客园 (cnblogs.com)


那我想再请问下,HAL_SLEEP=TRUE开启自带的LowPower函数后,在此期间又开启下电模式,自带的LowPower函数会妨碍到我开启下电模式这个操作吗?我从下电模式唤醒后,自带的LowPower函数还能不能正常运行?


HAL_SLEEP=TRUE开启lowpower函数后,会进入到sleep.c里面,默认调用LowPower_Sleep,你可以根据实际使用改成调用LowPower_Shutdown。或者在醒来的时候,手动调用LowPower_Shutdown函数,进入睡眠。需注意使用Shutdown唤醒后会复位。


了解了,目前做的产品就需要长期的休眠,上电的时候也想要尽量的降低功耗并保持蓝牙连接。


①如需要保持蓝牙连接的基础上进行降低功耗,则需要使用sleep模式的睡眠方式;

②降低功耗与广播和连接的间隔有关,间隔越大功耗越低,相应传输数据的速度会变慢;

③可以参考该博客,针对间隔有讲解:

BLE广播间隔和连接间隔(CH582) - SweetTea_lllpc - 博客园 (cnblogs.com)


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