luat_soc_sdk_2024 V1.0
luat_pm.h 文件参考
#include "luat_base.h"

浏览该文件的源代码.

宏定义

#define LUAT_PM_SLEEP_MODE_NONE   0
 
#define LUAT_PM_SLEEP_MODE_IDLE   1
 
#define LUAT_PM_SLEEP_MODE_LIGHT   2
 
#define LUAT_PM_SLEEP_MODE_DEEP   3
 
#define LUAT_PM_SLEEP_MODE_STANDBY   4
 
#define LUAT_PM_POWER_MODE_NORMAL   (0)
 去除所有降低功耗的措施
 
#define LUAT_PM_POWER_MODE_HIGH_PERFORMANCE   (1)
 尽可能保持性能,兼顾低功耗,使用LUAT_PM_SLEEP_MODE_LIGHT
 
#define LUAT_PM_POWER_MODE_BALANCED   (2)
 性能和功耗平衡,使用LUAT_PM_SLEEP_MODE_LIGHT
 
#define LUAT_PM_POWER_MODE_POWER_SAVER   (3)
 超低功耗,使用LUAT_PM_SLEEP_MODE_STANDBY,进入PSM模式
 

类型定义

typedef enum LUAT_PM_POWERON_REASON LUAT_PM_POWERON_REASON_E
 开机原因
 

枚举

enum  LUAT_PM_POWERON_REASON {
  LUAT_PM_POWERON_REASON_NORMAL = 0 , LUAT_PM_POWERON_REASON_FOTA , LUAT_PM_POWERON_REASON_ALARM , LUAT_PM_POWERON_REASON_SWRESET ,
  LUAT_PM_POWERON_REASON_UNKNOWN , LUAT_PM_POWERON_REASON_HWRESET , LUAT_PM_POWERON_REASON_EXCEPTION , LUAT_PM_POWERON_REASON_TOOL ,
  LUAT_PM_POWERON_REASON_WDT , LUAT_PM_POWERON_REASON_EXTERNAL , LUAT_PM_POWERON_REASON_CHARGING
}
 开机原因 更多...
 
enum  {
  LUAT_PM_POWER_USB , LUAT_PM_POWER_GPS , LUAT_PM_POWER_GPS_ANT , LUAT_PM_POWER_CAMERA ,
  LUAT_PM_POWER_DAC_EN_PIN , LUAT_PM_POWER_POWERKEY_MODE , LUAT_PM_POWER_WORK_MODE , LUAT_PM_POWER_LDO_CTL_PIN
}
 
enum  {
  LUAT_PM_ALL_GPIO , LUAT_PM_LDO_TYPE_VMMC , LUAT_PM_LDO_TYPE_VLCD , LUAT_PM_LDO_TYPE_CAMA ,
  LUAT_PM_LDO_TYPE_CAMD , LUAT_PM_LDO_TYPE_VLP33 , LUAT_PM_LDO_TYPE_VLP18 , LUAT_PM_LDO_TYPE_VIO18 ,
  LUAT_PM_LDO_TYPE_VIBR , LUAT_PM_LDO_TYPE_KEYLED , LUAT_PM_LDO_TYPE_VSIM1 , LUAT_PM_LDO_TYPE_QTY
}
 

函数

int luat_pm_request (int mode)
 请求进入指定的休眠模式
 
int luat_pm_release (int mode)
 退出休眠模式
 
int luat_pm_dtimer_start (int id, size_t timeout)
 启动底层定时器,在休眠模式下依然生效. 只触发一次
 
int luat_pm_dtimer_stop (int id)
 停止底层定时器
 
int luat_pm_dtimer_check (int id)
 检查底层定时器运行状态
 
int luat_pm_last_state (int *lastState, int *rtcOrPad)
 唤醒原因,用于判断是从开机是否是由休眠状态下开机/唤醒
 
int luat_pm_force (int mode)
 强制进入指定的休眠模式,忽略某些外设的影响,比如USB
 
int luat_pm_check (void)
 检查休眠状态
 
int luat_pm_dtimer_list (size_t *count, size_t *list)
 获取所有深度休眠定时器的剩余时间,单位ms
 
int luat_pm_dtimer_wakeup_id (int *id)
 获取唤醒定时器id
 
int luat_pm_poweroff (void)
 关机
 
int luat_pm_reset (void)
 重启
 
int luat_pm_power_ctrl (int id, uint8_t val)
 开启内部的电源控制,注意不是所有的平台都支持,可能部分平台支持部分选项,看硬件
 
int luat_pm_get_poweron_reason (void)
 开机原因
 
int luat_pm_iovolt_ctrl (int id, int val)
 设置IO电压域的电平
 
int luat_pm_wakeup_pin (int pin, int val)
 配置唤醒引脚,只针对esp系列
 
int luat_pm_set_power_mode (uint8_t mode, uint8_t sub_mode)
 设置联网低功耗模式,等同于AT+POWERMODE
 
uint32_t luat_pm_dtimer_remain (int id)
 深度休眠定时器剩余时间,单位ms