开机两秒,之后按住不放开6秒复位并关机,总计8秒
在开机播完power on 之后取点并置起标志位
即 bsp_sys_init()中
#if WARNING_POWER_ON
if ((xcfg_cb.bt_outbox_voice_pwron_en) || (!sys_cb.outbox_pwron_flag)) {
sys_warning_play(T_WARNING_POWER_ON, PIANO_POWER_ON);
}
sys_cb.outbox_pwron_flag = 0;
#endif // WARNING_POWER_ON
mic_bias_trim();
sys_cb1.reset=1;
sys_cb1.reset_tmp=tick_get();
然后在5毫秒中断中进行判断
if(get_pwrkey()||IS_PWRKEY_PRESS()||IS_TKEY_PRESS()){
if(tick_check_expire(sys_cb1.reset_tmp, 6000) && sys_cb1.reset){
msg_enqueue(EVT_RESET_SET);
}
}else{
sys_cb1.reset=0;
}
在func_message()中添加事件
case EVT_RESET_SET:
bt_nor_delete_link_info();
bt_tws_delete_link_info();
led_set_sta(0xff,0xff,6,255);//常亮2.4秒,0xff对应8个灯
printf("reset_set");
sys_warning_play(T_WARNING_NEXT_TRACK, 1);//嘀嘀嘀三声
sys_warning_play(T_WARNING_NEXT_TRACK, 1);
sys_warning_play(T_WARNING_NEXT_TRACK, 1);
delay_ms(1000); //延时一秒后关机
sys_cb.pwrdwn_tone_en = 1;
func_cb.sta = FUNC_PWROFF;
break;