2.15. PM 设备

2.15.1. 简介

2.15.2. PM 设备接口

2.15.2.1. pm_pds_mode_enter

pm_pds_mode_enter 用来进入 pds 模式

void pm_pds_mode_enter(enum pm_pds_sleep_level pds_level, uint32_t sleep_time);
  • pds_level PDS 等级

  • sleep_time 睡眠时间,单位 1/32768 hz

其中 pds_level 提供以下类型:

enum pm_pds_sleep_level {
    PM_PDS_LEVEL_0,
    PM_PDS_LEVEL_1,
    PM_PDS_LEVEL_2,
    PM_PDS_LEVEL_3,
    PM_PDS_LEVEL_4, /*do not recommend to use*/
    PM_PDS_LEVEL_5, /*do not recommend to use*/
    PM_PDS_LEVEL_6, /*do not recommend to use*/
    PM_PDS_LEVEL_7, /*do not recommend to use*/
    PM_PDS_LEVEL_31 = 31,
};

警告

pds level 4~7 不推荐使用

2.15.2.2. pm_hbn_mode_enter

pm_hbn_mode_enter 用来进入 hbn 模式

void pm_hbn_mode_enter(enum pm_hbn_sleep_level hbn_level, uint8_t sleep_time);
  • hbn_level HBN 等级

  • sleep_time 睡眠时间,单位秒

其中 hbn_level 提供以下类型:

enum pm_hbn_sleep_level {
    PM_HBN_LEVEL_0,
    PM_HBN_LEVEL_1,
    PM_HBN_LEVEL_2,
};

2.15.2.3. pm_set_wakeup_callback

pm_set_wakeup_callback 用来设置从唤醒恢复时跳转的函数地址,hbn level1 以上不可用。

void pm_set_wakeup_callback(void (*wakeup_callback)(void));
  • wakeup_callback 跳转的函数地址

2.15.2.4. pm_hbn_out0_irq_register

pm_hbn_out0_irq_register 用来注册 hbn out0 中断,out0下中断有:GPIO9~GPIO12,RTC。中断回调函数为 pm_irq_callback

void pm_hbn_out0_irq_register(void);

2.15.2.5. pm_hbn_out1_irq_register

pm_hbn_out1_irq_register 用来注册 hbn out1 中断,out1下中断有:ACOMP0、ACOMP1、BOR、PIR。中断回调函数为 pm_irq_callback

void pm_hbn_out1_irq_register(void);

pm_irq_callbackevent 提供以下类型:

enum pm_event_type {
    PM_HBN_GPIO9_WAKEUP_EVENT,
    PM_HBN_GPIO10_WAKEUP_EVENT,
    PM_HBN_GPIO11_WAKEUP_EVENT,
    PM_HBN_GPIO12_WAKEUP_EVENT,
    PM_HBN_RTC_WAKEUP_EVENT,
    PM_HBN_ACOMP0_WAKEUP_EVENT,
    PM_HBN_ACOMP1_WAKEUP_EVENT,
};