PHY6222_MESH_3.9.0 mesh进低功耗问题

蓝牙 BLE设备、蓝牙 MESH设备、蓝牙 Beacon设备、Sub-G设备等


Post Reply
scanway_lin
Posts: 48

pwm在进低功耗时需要hal_pwm_stop才能进入,而stop后pwm工作异常

void user_low_power_init(void)
{
TUYA_WAKEUP_SOURCE_BASE_CFG_T param_timer;
param_timer.source = TUYA_WAKEUP_SOURCE_TIMER;
param_timer.wakeup_para.timer_param.timer_num = TUYA_TIMER_NUM_0;
param_timer.wakeup_para.timer_param.mode = TUYA_TIMER_MODE_ONCE;
param_timer.wakeup_para.timer_param.ms = 40000;
tkl_wakeup_source_set(&param_timer);
tkl_cpu_sleep_mode_set(1, TUYA_CPU_SLEEP);
}

void user_pwm_init(void)
{
int ret;
TUYA_PWM_BASE_CFG_T pwm_cfg = {0};
pwm_cfg.polarity = TUYA_PWM_POSITIVE;
pwm_cfg.duty = 0;
pwm_cfg.frequency = 16000;
ret = tal_pwm_info_set(TUYA_PWM_NUM_0, &pwm_cfg);
tal_pwm_start(TUYA_PWM_NUM_0);
user_pwm_led0_set_duty(TUYA_PWM_NUM_0,1000);
}

按键消息:短按->
tkl_pwm_stop(TUYA_PWM_NUM_0);
hal_pwm_stop();
tal_cpu_allow_sleep();
唤醒后 长按->
user_pwm_init();

如果注释掉hal_pwm_stop后,pwm可以正常工作,帮忙看看是什么原因导致的。

scanway_lin
Posts: 48

Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

大佬们,帮忙看看

User avatar
joey_nobug
Posts: 180

Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

进入低功耗时外设是无法使用的,例如 PWM UART 等。所以 SDK 进休眠前会检测外设状态,如果外设在运行则无法进入低功耗。

Talk is cheap, show me the code.
scanway_lin
Posts: 48

Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

这个明白,hal_pwm_stop()执行后,进入低功耗suspend,唤醒后pwm再初始化工作异常。目的是在唤醒后能正常使用pwm.

User avatar
joey_nobug
Posts: 180

Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

scanway_lin 2026年 Jan 30日 12:00

这个明白,hal_pwm_stop()执行后,进入低功耗suspend,唤醒后pwm再初始化工作异常。目的是在唤醒后能正常使用pwm.

初始化接口换一下 tkl_pwm_init,不要用 tkl_pwm_info_set

Talk is cheap, show me the code.
scanway_lin
Posts: 48

Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

好的,感谢

Post Reply