关机之后长按10S,恢复出厂设置,恢复之后开机不播报开机提示音,如果按住1.5S以上,10S以内松手,即开机(需要播报开机提示音);按住1.5S以内松手不动作;具体实现如下:
bsp_sys.c中创建变量:
u8 power_reset_flag = 0;//开机的时候长按10S复位操作标志位
bsp_sys.h中声明为全局变量
extern u8 power_reset_flag;//开机的时候长按10S复位操作标志位
bsp_key.c下power_on_check_do()中:
int ticks_num = 0;
While(1)
{WDT_CLR();delay_ms(5);if ((key_val & K_PWR_MASK) == K_PWR){ticks_num++;if(ticks_num >= 2000)//每次循环有5ms延时{bt_clr_all_link_info();//恢复出厂设置power_reset_flag = 1;//不播报开机提示音if (!sys_cb.poweron_flag) {sys_cb.poweron_flag = 1;}}}else{if((ticks_num >= 300)&&(ticks_num < 2000)&&(!sys_cb.poweron_flag)){power_reset_flag = 0;;//播报开机提示音sys_cb.poweron_flag = 1;}}
}
bsp_sys.c下bsp_sys_init中:添加如下:
#if WARNING_POWER_ON
if (((xcfg_cb.bt_outbox_voice_pwron_en) || (!sys_cb.outbox_pwron_flag))&&(power_reset_flag == 0))
{sys_warning_play(T_WARNING_POWER_ON, PIANO_POWER_ON);
}
#endif // WARNING_POWER_ON
还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。