xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
PM 电源管理示例

平台 目标 板子
lm620 r4f4 e837n_v01

演示电源管理(PM)的睡眠/唤醒、关机/开机流程和唤醒源管理。

预期行为

**开机检测**:

  • 检测 KEYON 按键电平,若持续按下超过 1 秒( XT_CFG_PM_POWERON_TIMEOUT_MS )则判定为开机
  • 若未满足开机条件,调用 xt_hal_pm_poweroff() 关机

**唤醒源状态**:

**唤醒中断配置**:

  • SLEEP_WAKEUP_PIN :配置为上拉 + 上升沿中断 + 唤醒,用于睡眠模式唤醒
  • WAKEUP_PIN :配置为下降沿中断 + 唤醒,支持睡眠和关机模式唤醒
  • KEYON_PIN :配置为下降沿中断 + 唤醒,支持睡眠和关机模式唤醒

**睡眠模式**:

  • 开机后调用 xt_hal_pm_request(XT_HAL_PM_MODE_SLEEP) 请求进入睡眠模式
  • 创建周期定时器(3 秒),触发时打印回调日志

**PM 定时器**:

**唤醒计数与关机**:

  • 每次外部引脚唤醒时累加计数,达到 10 次后设置 10 秒关机定时器并强制进入 PSM 模式

串口输出示例:

[PM Example] Starting PM example application
[PM Example] Power on
[PM Example] Last state: 1, Wake reason: 2
[PM Example] Power on reason: 0
[PM Example] Wakeup interrupt setup success
[PM Example] success XT_IO_WAKEUP
[PM Example] success XT_IO_KEYON
[PM Example] Sleep timer created
[PM Example] Sleep mode requested
[PM Example] Sleep timer started, period: 3000 ms
[PM Example] remaining time: 1000 ms
[PM Example] Entering main loop, wakeup count: 0
[PM Example] Sleep timer callback triggered, timer_id: 0
[PM Example] Wakeup callback triggered, wakeup_io: 0, count: 1
...

编译和运行

cd examples/peripherals/pm
xt --target lm620/r4f4 --board e837n_v01 fullclean build

下载固件后运行,串口观察电源管理日志。通过外部按键触发唤醒中断以验证完整流程。

注意事项

  • AON 引脚在关机模式下唤醒不会触发回调,仅 KEYON 和 WAKEUP 引脚支持关机唤醒
  • 关机前必须设置唤醒中断,否则无法唤醒
  • 唤醒回调中的 xt_printf 不一定能完整输出(芯片唤醒时序可能导致日志丢失)
  • 示例依赖 xt_task 组件( xt_event_handler / xt_timer_handler 驱动主循环)

故障排除

现象 原因 解决
唤醒后无回调日志 关机模式下 AON 引脚唤醒不触发回调 确认使用的引脚支持关机唤醒
关机后无法唤醒 关机前未反初始化 WAKEUP 引脚 注释掉关机前的反初始化逻辑