|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
XTINY HAL 电源管理模块接口 更多...
宏定义 | |
| #define | XT_HAL_PM_INVALID_ID (0xFF) |
类型定义 | |
| typedef void(* | xt_hal_pm_cb_t) (uint8_t id, uint32_t event_id) |
| PM 回调函数类型定义 | |
函数 | |
| xt_err_t | xt_hal_pm_request (uint8_t mode) |
| 请求进入指定功耗模式 | |
| xt_err_t | xt_hal_pm_force (uint8_t mode) |
| 强制进入指定功耗模式 | |
| int32_t | xt_hal_pm_check (uint8_t mode) |
| 检查是否可以进入指定低功耗模式 | |
| xt_err_t | xt_hal_pm_timer_setup (uint8_t timer_id, uint32_t timeout_ms, xt_hal_pm_cb_t cb) |
| 设置定时唤醒 | |
| xt_err_t | xt_hal_pm_timer_close (uint8_t timer_id) |
| 关闭定时唤醒 | |
| bool | xt_hal_pm_timer_is_running (uint8_t timer_id) |
| 检查定时器是否运行 | |
| xt_err_t | xt_hal_pm_timer_get_remaining (uint8_t timer_id, xt_hal_rtc_timestamp_t *remaining_time_ms) |
| 获取定时器剩余时间 | |
| xt_err_t | xt_hal_pm_get_last_state (uint8_t *last_state, uint8_t *wake_reason) |
| 唤醒原因,用于判断是从开机是否是由休眠状态下开机/唤醒 | |
| int32_t | xt_hal_pm_get_wake_reason (void) |
| 获取开机原因 | |
| int32_t | xt_hal_pm_get_reset_reason (void) |
| 获取重启原因,等同于获取开机原因 | |
| xt_err_t | xt_hal_pm_poweroff (void) |
| 系统关机 | |
| xt_err_t | xt_hal_pm_reset (void) |
| 系统复位 | |
| xt_err_t | xt_hal_pm_set_power (uint8_t power_id, uint8_t val) |
| 控制内部电源域开关 | |
XTINY HAL 电源管理模块接口
| #define XT_HAL_PM_INVALID_ID (0xFF) |
在文件 xt_hal_pm.h 第 34 行定义.
| typedef void(* xt_hal_pm_cb_t) (uint8_t id, uint32_t event_id) |
PM 回调函数类型定义
| id | 事件ID(唤醒中断 ID wakeup_id) |
| event_id | 事件类型,见 xt_hal_pm_event_id |
在文件 xt_hal_pm.h 第 52 行定义.
| enum xt_hal_pm_event_id |
PM 事件ID枚举
| 枚举值 | |
|---|---|
| XT_HAL_PM_EVENT_WAKEUP | PM 唤醒事件 |
| XT_HAL_PM_EVENT_TIMER | PM 定时器事件 |
在文件 xt_hal_pm.h 第 41 行定义.
| enum xt_hal_pm_last_state |
上次状态枚举
| 枚举值 | |
|---|---|
| XT_HAL_PM_LAST_STATE_RESET | 普通开机(上电/复位) |
| XT_HAL_PM_LAST_STATE_DEEP_SLEEP | 深睡眠开机 |
| XT_HAL_PM_LAST_STATE_STANDBY | 休眠开机 |
在文件 xt_hal_pm.h 第 77 行定义.
| enum xt_hal_pm_mode |
工作模式枚举
| 枚举值 | |
|---|---|
| XT_HAL_PM_MODE_WORK | 正常工作模式 |
| XT_HAL_PM_MODE_SLEEP | 睡眠模式 |
| XT_HAL_PM_MODE_PSM | PSM 模式 |
| XT_HAL_PM_MODE_MAX | 模式数量 |
在文件 xt_hal_pm.h 第 57 行定义.
在文件 xt_hal_pm.h 第 93 行定义.
唤醒原因枚举
| 枚举值 | |
|---|---|
| XT_HAL_PM_WAKE_REASON_RESET | 上电/复位开机 |
| XT_HAL_PM_WAKE_REASON_RTC | RTC 唤醒 |
| XT_HAL_PM_WAKE_REASON_WAKEUP | 外部中断唤醒 |
| XT_HAL_PM_WAKE_REASON_KEY_WAKEUP | 按键唤醒 |
在文件 xt_hal_pm.h 第 67 行定义.
唤醒原因详细枚举
| 枚举值 | |
|---|---|
| XT_HAL_PM_WAKE_REASON_DETAIL_RESET | 上电/复位开机 |
| XT_HAL_PM_WAKE_REASON_DETAIL_RTC | RTC开机 |
| XT_HAL_PM_WAKE_REASON_DETAIL_WAKEUP | WakeupIn/Pad/IO开机 |
| XT_HAL_PM_WAKE_REASON_DETAIL_WAKEUP_RTC | Wakeup/RTC开机 |
在文件 xt_hal_pm.h 第 86 行定义.
| int32_t xt_hal_pm_check | ( | uint8_t | mode | ) |
| xt_err_t xt_hal_pm_force | ( | uint8_t | mode | ) |
强制进入指定功耗模式
| mode | 功耗模式,见 xt_hal_pm_mode |
| xt_err_t xt_hal_pm_get_last_state | ( | uint8_t * | last_state, |
| uint8_t * | wake_reason ) |
唤醒原因,用于判断是从开机是否是由休眠状态下开机/唤醒
| [out] | last_state | 前一个状态,见 xt_hal_pm_last_state |
| [out] | wake_reason | 唤醒原因,见 xt_hal_pm_wake_reason_detail |
| int32_t xt_hal_pm_get_reset_reason | ( | void | ) |
获取重启原因,等同于获取开机原因
| int32_t xt_hal_pm_get_wake_reason | ( | void | ) |
获取开机原因
| xt_err_t xt_hal_pm_request | ( | uint8_t | mode | ) |
请求进入指定功耗模式
| mode | 功耗模式,见 xt_hal_pm_mode |
| xt_err_t xt_hal_pm_set_power | ( | uint8_t | power_id, |
| uint8_t | val ) |
控制内部电源域开关
| power_id | 电源域 ID,见 xt_hal_pm_power_id |
| val | 电源域开关状态,0 关闭,1 打开 |
| xt_err_t xt_hal_pm_timer_close | ( | uint8_t | timer_id | ) |
关闭定时唤醒
| timer_id | 定时器 ID,见 xt_hal_pm_timer_id |
| xt_err_t xt_hal_pm_timer_get_remaining | ( | uint8_t | timer_id, |
| xt_hal_rtc_timestamp_t * | remaining_time_ms ) |
获取定时器剩余时间
获取指定定时器的剩余时间,单位为毫秒。注意,定时器单位由平台定义,可能只有秒级精度。 如果定时器未运行或已过期或剩余时间不到 1 s(秒级精度时),返回 0。
| timer_id | 定时器 ID,见 xt_hal_pm_timer_id | |
| [out] | remaining_time_ms | 剩余时间(单位:毫秒) |
| bool xt_hal_pm_timer_is_running | ( | uint8_t | timer_id | ) |
检查定时器是否运行
| timer_id | 定时器 ID,见 xt_hal_pm_timer_id |
| xt_err_t xt_hal_pm_timer_setup | ( | uint8_t | timer_id, |
| uint32_t | timeout_ms, | ||
| xt_hal_pm_cb_t | cb ) |
设置定时唤醒
在睡眠模式和关机模式下都生效。配置定时器在指定时间后触发唤醒回调,只触发一次。 关机模式唤醒时不会触发回调,但会唤醒系统。
| timer_id | 定时器 ID,见 xt_hal_pm_timer_id |
| timeout_ms | 超时时间(单位毫秒,实际精度由平台定义,可能只有秒级精度) |
| cb | 定时器回调函数,超时时调用 |