admin管理员组

文章数量:1544274

关机之后长按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 = 0While(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

本文标签: