轻触开关,按一次开启仪器,再按一次关闭仪器,本来好好的,正常运行。后来想把on_off_key==0判断改为非零的判断,on_off_key!=0,
结果怎么按都没反应了,感觉很奇怪,特来求问
t=scan_key();//读取物理按键按下值
switch(t)
{
case ONOFF_PRES ://开关机
on_off_key=!on_off_key;
if(on_off_key==0)//开机
{
PM25_ne=1;//打开pm2.5传感器
SHOW_ne=1;//打开显示屏
touch_down_detection=touch_pm25;//默认检测PM2.5
touch_down=touch_pm25;
touch_auto_manu=1;//暂停键为1,默认启动
}
else
{
HCHO_ne=0;//关闭甲醛
co2_ne=0;//关闭二氧化碳
PM25_ne=0;//关闭pm2.5传感器
SHOW_ne=0;//关闭显示屏
led_control=0;//禁止灯带工作
led_green=0;
led_blue=0;
led_red=0;
Sys_Enter_Stop();//进入停机模式
}
break;
default: break;
}
以下为主函数代码
[mw_shl_code=c,true]int main()
{
u8 t;
Stm32_Clock_Init(9);//时钟初始化
delay_init(72);//延时初始化
SHOW_init();//串口屏初始化
hcho_init();//甲醛接口初始化
co2_init();//二氧化碳初始化
pm25_init();//PM2.5初始化
led_init();//led初始化
key_init();//按键初始化
Adc_Init();//AD初始化
battery_init();//充电判断端口初始化
TIM3_Int_Init(4999,7199);//10K计数频率,计数时间500ms
anioncontrol_init();//负离子发生器控制初始化
led_blue=0;
led_green=0;
led_red=0;
on_off_key=1;//开机标志
PM25_ne=1;//打开pm2.5传感器
SHOW_ne=1;//打开显示屏
while(1)
{
if(battery_check()||battery_charing==1)//电池电量足够或者适配器电源插上,允许运行
{
t=scan_key();//读取物理按键按下值
switch(t)
{
case ONOFF_PRES ://开关机
on_off_key=!on_off_key;
if(on_off_key==0)//开机
{
PM25_ne=1;//打开pm2.5传感器
SHOW_ne=1;//打开显示屏
touch_down_detection=touch_pm25;//默认检测PM2.5
touch_down=touch_pm25;
touch_auto_manu=1;//暂停键为1,默认启动
}
else
{
HCHO_ne=0;//关闭甲醛
co2_ne=0;//关闭二氧化碳
PM25_ne=0;//关闭pm2.5传感器
SHOW_ne=0;//关闭显示屏
led_control=0;//禁止灯带工作
led_green=0;
led_blue=0;
led_red=0;
Sys_Enter_Stop();//进入停机模式
}
break;
case ONOFF_SENSE://触摸校准
default: break;
}
on_off_control();//开机
if(time_number==1)// 一秒跟新一次数值
{
show_battery();//显示电量
if(on_off_key==0)//开机
{
SHOW_show();//显示数值
pm25_detection();//显示环境检测环
}
if(led_control==0)//关闭led灯
{
led_green=0;
led_blue=0;
led_red=0;
}
time_number=0;
}
touch_judge();//触摸检测
SHOW_key();//显示虚拟按键
anioncontrol_check();//检测空气质量状况,控制负离子净化器是否工作
}
else//电池电量不足并且未充电,禁止运行
{
HCHO_ne=0;//关闭甲醛
co2_ne=0;//关闭二氧化碳
PM25_ne=0;//关闭pm2.5传感器
SHOW_ne=0;//关闭显示屏
led_control=0;//禁止灯带工作
led_green=0;
led_blue=0;
led_red=0;
ac_ne1=0;//禁止负离子发生器工作
led_red=1;
delay_ms(500);//红灯亮500ms
led_red=0;
Sys_Enter_Stop();//进入停机模式
}
}
}[/mw_shl_code]
|