js加密:hr.bibibi md5

博客主要讲述了寻找加密js的相关内容,最终得出使用execjs调用js的结果,聚焦于信息技术中加密js调用的方法。

1. 寻找加密js:

 

 2. 结果:

 

 3. execjs调用js即可。

void Key_Pro(void) { u8 Key_num; for(Key_num = 0; Key_num < KEY_NUM; Key_num++) { if(GPIO_ReadInputDataBit(KEy[Key_num].KeyPort, KEy[Key_num].KeyPin) == 0) { KEy[Key_num].KeyAge++; if(KEy[Key_num].KeyAge > KEYGATE) { KEy[Key_num].KeyPress = 1; } if(KEy[Key_num].KeyAge > LONGAGE) { KEy[Key_num].KeyAge = LONGAGE + 1; ContinuePress(); } if(SysInfo.AlarmClockOk) { SysInfo.AlarmClockOk = 0; SysFlag.UpOver = 0; //return; } } else//警报时,执行这里 { if((KEy[Num_Power].KeyPress) && (KEy[Num_Alm].KeyPress) && (!SysFlag.First_Press)) { KEy[Num_Power].KeyPress = 0; KEy[Num_Alm].KeyPress = 0; SysInfo.AlarmClockOk = 0; SysFlag.UpOver = 0; SysData.Sys_State = SET_STATE; SysData.Set_State = SET_ALM_CLOCK_HOUR; SysData.SET_Value = SysInfo.AlarmClockInfo.hour; ResetAlarmClockTime(); SysFlag.DispSetEn = 0; Delayms(200); return; } else if((KEy[Key_num].KeyPress) && (KEy[Key_num].KeyProcessed == 0) && (!SysFlag.First_Press)) { if(SysInfo.AlarmClockOk) { SysInfo.AlarmClockOk = 0; SysFlag.UpOver = 0; return; } if(SysFlag.BiBiBi) { SysFlag.BiBiBi = 0; SysFlag.UpOver = 0; ALM_OUT_EN(DISABLE); SysData.Wait = 33; //10*150=1500ms KEy[Key_num].KeyPress = 0; KEy[Key_num].KeyAge = 0; } else { KEy[Key_num].fun(SHORT_PRESS); } KEy[Key_num].KeyProcessed = 1; } if((KEy[Num_Up].KeyPress == 0) && (KEy[Num_Down].KeyPress == 0) && (KEy[Num_Alm].KeyPress == 0) && (!SysData.Cal_Mode)) { KeyHold = 0; KeyOffset = 1; SysData.WaitReleaseKey++; if(SysData.WaitReleaseKey > 20 * KEY_NUM) //18*50=1000ms { SysData.WaitReleaseKey = 0; SysFlag.FlickEn = 1; if((SysData.Sys_State == SET_STATE) && (SysData.Set_State == SET_ALM_Type)) { switch(SysData.SET_Value) { case 1: Set_Buzz_Pluse(BUZZ_0_LEVEL); break; case 2: Set_Buzz_Pluse(BUZZ_1_LEVEL); break; case 3: Set_Buzz_Pluse(BUZZ_2_LEVEL); break; } } } } if((KEy[Num_Alm].KeyPress == 1) && (SysData.Cal_Mode) && (Key_num == Num_Alm) && (SysFlag.Cal_En == 1)) { SysFlag.Cal_En = 0; // SysData.Cal_DB_Point++; // if(SysData.Cal_DB_Point > POINT_40DB) // { // SysData.Cal_DB_Point = POINT_100DB; // } SysData.Cal_Step = 0; SysFlag.Cal_Finish = 0; // SysFlag.Cal_DB_Finish = 0; SysFlag.FlickEn = 0; } KEy[Key_num].KeyAge = 0; KEy[Key_num].KeyPress = 0; KEy[Key_num].KeyProcessed = 0; if(Key_num == 0) { SysFlag.First_Press = 0x00;//Power key first press } } if((KEy[Key_num].KeyPress) && (KEy[Key_num].KeyProcessed == 0) && (KEy[Key_num].KeyAge > LONGAGE) && (!SysFlag.First_Press)) { KEy[Key_num].KeyAge = 0; KEy[Key_num].KeyProcessed = 1; KEy[Key_num].fun(LONG_PRESS); } if((SysFlag.First_Press) && (KEy[Num_Down].KeyPress) && (KEy[Num_Up].KeyPress)) { Enter_Cal(); } if((SysFlag.First_Press) && (KEy[Num_Alm].KeyPress)) { Clear_Rec(); KEy[Num_Alm].KeyPress = 0; } } } void PowerKey_Pro(PRESS_MODE_TypeDef Press_Mode) { switch(Press_Mode) { case SHORT_PRESS: if(SysData.Sys_State == MAIN_STATE) { ; } else { switch(SysInfo.AlmPara.Struct_Para.Alm_Type) { case 1: Set_Buzz_Pluse(BUZZ_0_LEVEL); break; case 2: Set_Buzz_Pluse(BUZZ_1_LEVEL); break; case 3: Set_Buzz_Pluse(BUZZ_2_LEVEL); break; } SysData.Sys_State = MAIN_STATE; SysData.Set_State = SET_ALM; SysData.WaitReleaseKey = 0; SysData.Save_Cnt = 0; //闹钟设置取消后设置值保留问题,读取原来值 Load_Param(&SysInfo.AlarmClockInfo.hour, sizeof(SysInfo.AlarmClockInfo.hour)); Load_Param(&SysInfo.AlarmClockInfo.minute, sizeof(SysInfo.AlarmClockInfo.minute)); Para_Save(); } break; case LONG_PRESS: if(!VUSB_CHECK) { Shut_Down(); } else { SysFlag.shutdown = 1 ; } break; } } void ALM_Key_Pro(PRESS_MODE_TypeDef Press_Mode) { if(SysData.Cal_Mode) { if(SysData.Freq_Weight == C_WEIGHT) { SysData.Freq_Weight = A_WEIGHT; FREQ_WEIGHT_A; Disp_All(); Delayms(2000); } else { SysFlag.Cal_En = 1; Cal_Pro(); } return; } switch(SysData.Sys_State) { case MAIN_STATE: switch(Press_Mode) { case SHORT_PRESS: if(Press_Mode != SHORT_PRESS)break; //报警开关 if(SysData.ALM_EN == ENABLE) { Close_Alm(); SysData.ALM_EN = DISABLE; LED_2_OFF; //yanggj } else { SysData.ALM_EN = ENABLE; } SysInfo.AlmPara.Struct_Para.Alm_Switch = SysData.ALM_EN; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case LONG_PRESS: Close_Alm(); SysData.WaitReleaseKey = 0; SysData.Save_Cnt = 0; SysData.Sys_State = SET_STATE; SysData.Set_State = SET_ALM; SysData.SET_Value = SysData.Alm / 10; SysFlag.DispSetEn = 1; Time_Set.year = Time_Dec.year; Time_Set.month = Time_Dec.month; Time_Set.day = Time_Dec.day; Time_Set.hour = Time_Dec.hour; Time_Set.minute = Time_Dec.minute; Time_Set.second = Time_Dec.second; break; } break; case SET_STATE://设置状态 switch(SysData.Set_State) { case SET_ALM: SysData.Alm = SysData.SET_Value * 10; SysInfo.AlmPara.Struct_Para.Alm_Value = SysData.Alm; SysData.SET_Value = SysData.Alm2 / 10; SysData.Set_State = SET_ALM2; LED_2_OFF; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case SET_ALM2: SysData.Alm2 = SysData.SET_Value * 10; SysInfo.AlmPara.Struct_Para.Alm2_Value = SysData.Alm2; SysData.SET_Value = SysInfo.AlmPara.Struct_Para.Alm_Time; SysData.Set_State = SET_ALM_TIME; LED_2_OFF; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case SET_ALM_TIME: SysData.Alm_Time = SysData.SET_Value; SysInfo.AlmPara.Struct_Para.Alm_Time = SysData.Alm_Time; SysData.Set_State = SET_ALM_Type; SysData.SET_Value = SysInfo.AlmPara.Struct_Para.Alm_Type; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case SET_ALM_Type: SysData.Alm_Type = SysData.SET_Value; SysInfo.AlmPara.Struct_Para.Alm_Type = SysData.Alm_Type; switch(SysData.Alm_Type) { case 1: Set_Buzz_Pluse(BUZZ_0_LEVEL); break; case 2: Set_Buzz_Pluse(BUZZ_1_LEVEL); break; case 3: Set_Buzz_Pluse(BUZZ_2_LEVEL); break; } SysData.Set_State = SET_YEAR; SysData.SET_Value = Time_Set.year; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case SET_YEAR: Time_Set.year = SysData.SET_Value; Time_Hex.year = ((Time_Set.year / 10) << 4) | (Time_Set.year % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.month; SysData.Set_State = SET_MONTH; break; case SET_MONTH: Time_Set.month = SysData.SET_Value; Time_Hex.month = ((Time_Set.month / 10) << 4) | (Time_Set.month % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.day; SysData.Set_State = SET_DAY; break; case SET_DAY: Time_Set.day = SysData.SET_Value; Time_Hex.day = ((Time_Set.day / 10) << 4) | (Time_Set.day % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.hour; SysData.Set_State = SET_HOUR; break; case SET_HOUR: Time_Set.hour = SysData.SET_Value; Time_Hex.hour = ((Time_Set.hour / 10) << 4) | (Time_Set.hour % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.minute; SysData.Set_State = SET_MINUTE; break; case SET_MINUTE: Time_Set.minute = SysData.SET_Value; Time_Hex.minute = ((Time_Set.minute / 10) << 4) | (Time_Set.minute % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.second; SysData.Set_State = SET_SECOND; break; case SET_SECOND: Time_Set.second = SysData.SET_Value; Time_Hex.second = ((Time_Set.second / 10) << 4) | (Time_Set.second % 10); Save_TimeDate(); //保存时间日期 if(SysData.ALM_EN == ENABLE) //yanggj { LED_2_ON; } else { LED_2_OFF; } Close_Alm(); SysData.Save_Cnt = 0; SysData.Sys_State = MAIN_STATE; SysData.Set_State = SET_ALM; SysData.WaitReleaseKey = 0; break; case SET_ALM_CLOCK_HOUR: SysData.Set_State = SET_ALM_CLOCK_MINUTE; SysData.SET_Value = SysInfo.AlarmClockInfo.minute; break; case SET_ALM_CLOCK_MINUTE: SysData.Set_State = SET_ALM_CLOCK_EN; //SysData.SET_Value = SysInfo.AlarmClockInfo.enabled; break; case SET_ALM_CLOCK_EN: //SysInfo.AlarmClockInfo.enabled = SysData.SET_Value; SysData.Set_State = SET_ALM; SysData.Sys_State = MAIN_STATE; Para_Save(); break; } break; } } 为什么在未开机时电源键和报警键同时按下进入清除模式会进不去
06-27
这是一个按键的代码 void ALM_Key_Pro(PRESS_MODE_TypeDef Press_Mode) { if(SysData.Cal_Mode) { if(SysData.Freq_Weight == C_WEIGHT) { SysData.Freq_Weight = A_WEIGHT; FREQ_WEIGHT_A; Disp_All(); Delayms(2000); } else { SysFlag.Cal_En = 1; Cal_Pro(); } return; } switch(SysData.Sys_State) { case MAIN_STATE: switch(Press_Mode) { case SHORT_PRESS: if(Press_Mode != SHORT_PRESS)break; //报警开关 if(SysData.ALM_EN == ENABLE) { Close_Alm(); SysData.ALM_EN = DISABLE; LED_2_OFF; //yanggj } else { SysData.ALM_EN = ENABLE; } SysInfo.AlmPara.Struct_Para.Alm_Switch = SysData.ALM_EN; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case LONG_PRESS: Close_Alm(); SysData.WaitReleaseKey = 0; SysData.Save_Cnt = 0; SysData.Sys_State = SET_STATE; SysData.Set_State = SET_ALM; SysData.SET_Value = SysData.Alm / 10; SysFlag.DispSetEn = 1; Time_Set.year = Time_Dec.year; Time_Set.month = Time_Dec.month; Time_Set.day = Time_Dec.day; Time_Set.hour = Time_Dec.hour; Time_Set.minute = Time_Dec.minute; Time_Set.second = Time_Dec.second; break; } break; case SET_STATE://设置状态 switch(SysData.Set_State) { case SET_ALM: SysData.Alm = SysData.SET_Value * 10; SysInfo.AlmPara.Struct_Para.Alm_Value = SysData.Alm; SysData.SET_Value = SysInfo.AlmPara.Struct_Para.Alm_Time; SysData.Set_State = SET_ALM_TIME; LED_2_OFF; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case SET_ALM_TIME: SysData.Alm_Time = SysData.SET_Value; SysInfo.AlmPara.Struct_Para.Alm_Time = SysData.Alm_Time; SysData.Set_State = SET_ALM_Type; SysData.SET_Value = SysInfo.AlmPara.Struct_Para.Alm_Type; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case SET_ALM_Type: SysData.Alm_Type = SysData.SET_Value; SysInfo.AlmPara.Struct_Para.Alm_Type = SysData.Alm_Type; switch(SysData.Alm_Type) { case 1: Set_Buzz_Pluse(BUZZ_0_LEVEL); break; case 2: Set_Buzz_Pluse(BUZZ_1_LEVEL); break; case 3: Set_Buzz_Pluse(BUZZ_2_LEVEL); break; } SysData.Set_State = SET_YEAR; SysData.SET_Value = Time_Set.year; Save_Param(&SysInfo.AlmPara, sizeof(SysInfo.AlmPara)); break; case SET_YEAR: Time_Set.year = SysData.SET_Value; Time_Hex.year = ((Time_Set.year / 10) << 4) | (Time_Set.year % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.month; SysData.Set_State = SET_MONTH; break; case SET_MONTH: Time_Set.month = SysData.SET_Value; Time_Hex.month = ((Time_Set.month / 10) << 4) | (Time_Set.month % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.day; SysData.Set_State = SET_DAY; break; case SET_DAY: Time_Set.day = SysData.SET_Value; Time_Hex.day = ((Time_Set.day / 10) << 4) | (Time_Set.day % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.hour; SysData.Set_State = SET_HOUR; break; case SET_HOUR: Time_Set.hour = SysData.SET_Value; Time_Hex.hour = ((Time_Set.hour / 10) << 4) | (Time_Set.hour % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.minute; SysData.Set_State = SET_MINUTE; break; case SET_MINUTE: Time_Set.minute = SysData.SET_Value; Time_Hex.minute = ((Time_Set.minute / 10) << 4) | (Time_Set.minute % 10); Save_TimeDate(); SysData.SET_Value = Time_Set.second; SysData.Set_State = SET_SECOND; break; case SET_SECOND: Time_Set.second = SysData.SET_Value; Time_Hex.second = ((Time_Set.second / 10) << 4) | (Time_Set.second % 10); Save_TimeDate(); //保存时间日期 if(SysData.ALM_EN == ENABLE) //yanggj { LED_2_ON; } else { LED_2_OFF; } Close_Alm(); SysData.Save_Cnt = 0; SysData.Sys_State = MAIN_STATE; SysData.Set_State = SET_ALM; SysData.WaitReleaseKey = 0; break; case SET_ALM_CLOCK_HOUR: SysData.Set_State = SET_ALM_CLOCK_MINUTE; SysData.SET_Value = SysInfo.AlarmClockInfo.minute; break; case SET_ALM_CLOCK_MINUTE: SysData.Set_State = SET_ALM_CLOCK_EN; //SysData.SET_Value = SysInfo.AlarmClockInfo.enabled; break; case SET_ALM_CLOCK_EN: //SysInfo.AlarmClockInfo.enabled = SysData.SET_Value; SysData.Set_State = SET_ALM; SysData.Sys_State = MAIN_STATE; Para_Save(); break; } break; } } void Disp_Set(void) { u32 Tmp; if((SysData.Sys_State != SET_STATE) || ((SysData.Sys_State == SET_STATE) && (SysData.Set_State > SET_SECOND))) return; if((SysFlag.FlickEn) && (SysFlag.LCDFlick == 0) && ((SysData.Set_State == SET_ALM_TIME) || (SysData.Set_State == SET_ALM_Type) || (SysData.Set_State == SET_ALM))) { Disp_Clear(); return; } SysFlag.DispSetEn = 0; Tmp = SysData.SET_Value; HexToBcd(Tmp); Fill_Data(); if(MainData[0] == 0) { MainData[0] = 10;//空 if((SysData.Set_State == SET_ALM_TIME) || (SysData.Set_State == SET_ALM_Type) || (SysData.Set_State == SET_ALM)) { if(MainData[1] == 0) MainData[1] = 10; } if(SysFlag.LCDFlick) { switch(SysData.Set_State) { case SET_YEAR: MainData[0] = 18;//年 break; case SET_MONTH: MainData[0] = 19;//月 break; case SET_DAY: MainData[0] = 20;//日 break; case SET_HOUR: MainData[0] = 21;//时 break; case SET_MINUTE: MainData[0] = 22;//分 break; case SET_SECOND: MainData[0] = 23;//秒 break; } } } // MainData[2]=Font_TAB_10_8_6[MainData[0]]; // MainData[1]=Font_TAB_11_9_7[MainData[1]]; // MainData[0]=Font_TAB_10_8_6[MainData[2]]; Disp_LCD(); } 这个是对应的显示的代码 #ifndef __TYPE_H #define __TYPE_H #include "main.h" typedef enum { RANG_70DB = 0x00, RANG_100DB = 0x01, RANG_130DB = 0x02 } MEA_RANGE_TypeDef; //typedef enum //{ // POINT_100DB = 0x00, // POINT_70DB = 0x01, // POINT_40DB = 0x02 //} CAL_POINT_TypeDef; typedef enum { SHORT_PRESS = 0x00, LONG_PRESS = 0x01, } PRESS_MODE_TypeDef; typedef enum { A_WEIGHT = 0x00, C_WEIGHT = 0x01, } FREQ_WEIGHT_TypeDef; typedef enum { FAST_RESP = 0x00, SLOW_RESP = 0x01, } FREQ_RESP_TypeDef; typedef enum { MAIN_STATE = 0x00, SET_STATE = 0x01, } SYS_STATE_TypeDef; typedef enum { SET_ALM = 0x00 , SET_ALM_TIME , SET_ALM_Type , SET_YEAR , SET_MONTH , SET_DAY , SET_HOUR , SET_MINUTE , SET_SECOND , SET_ALM_CLOCK_HOUR , SET_ALM_CLOCK_MINUTE , SET_ALM_CLOCK_EN , } SET_STATE_TypeDef; typedef enum { NO_OUT_RANGE = 0x00, OVER_RANGE = 0x01, UNDER_RANGE = 0x02, } OUT_RANGE_TypeDef; typedef struct { u8 KeyAge : 8; u8 KeyPress : 4; u8 KeyProcessed : 4; GPIO_Module *KeyPort; uint16_t KeyPin; void (*fun) (PRESS_MODE_TypeDef); } SysKey; typedef struct { u8 First_Press; u8 Mea_OK; u8 EEPROM_ERR; u8 SPIFlashErr; u8 Cal_Finish; // u8 Cal_DB_Finish; u8 Cal_En; u8 DispSetEn; u8 LCDFlick; u8 FlickEn; u8 RecFull; u8 Alarms; u8 UpOver; u8 ClockSoundEn; u8 GetRec; u8 BiBiBi; u8 Nop; u8 GetDate; u8 Test; u8 PWD, PWDErr; u8 EraseDoing; u8 UsbCmdLen; u8 SensorType; //温湿度传感器类型 u8 DMA_OK; u8 shutdown; u8 showLcd; } FLAG_TYPE; typedef struct { double ADC_VALUE[3]; double ADC_Sum_Value; u32 ADC_INT_Value; u16 ADC_CNT; u16 DB_Disp; u32 ADC_INT_Value_TAB[8]; u32 CAL_INT_Value; u16 Disp_ALM; //CAL u8 ADC_TAB_CNT; u8 Cal_Mode; //系统状态 // CAL_POINT_TypeDef Cal_DB_Point; FREQ_WEIGHT_TypeDef Freq_Weight; FREQ_RESP_TypeDef Freq_Resp; SYS_STATE_TypeDef Sys_State; OUT_RANGE_TypeDef Mea_Range; MEA_RANGE_TypeDef Adc_Range; SET_STATE_TypeDef Set_State; FunctionalState ALM_EN; u8 SaveCnt_2s; u16 Wait; u8 DispDB_Cnt; u8 CalEn; s16 SET_Value; u16 Save_2s_Data[14]; u32 Start_Rec;//1开始 但是程序中所有的变量 统一从0开始 所以在使用时要-1 u32 End_Rec;//1开始 但是程序中所有的变量 统一从0开始 所以在使用时要-1 u8 Cal_Step; u8 Save_Cnt; u8 FlashNum; u8 WaitReleaseKey; u32 OverCntt[3]; u8 Alm_Time; u8 Alm_Type; u16 Alm; u16 MaxDB_Save; u8 SaveTime2s; u8 DMA_Group; u8 BattCnt; u16 BattBuff[64]; u32 Batt; u8 Units; // 0: 摄氏度, 1: 华氏度 } DATA_TYPE; typedef struct { unsigned char year ; unsigned char month ; unsigned char day ; unsigned char hour ; unsigned char minute ; unsigned char second ; } DATE_TIME; typedef struct { unsigned char hour ; unsigned char minute ; unsigned char second ; unsigned char enabled ; } TIME_INFO; typedef union { u32 Mem; struct { u16 Alm_Value : 16; u8 Alm_Switch : 4; u8 Alm_Type : 4; u8 Alm_Time : 8; } Struct_Para; } UNION_PARA; typedef struct { u16 ID; u16 ChipStart; u32 REC_HalfPages;//从0开始 0至MAX_REC_Pages-1 int16_t Cal_Adc[3]; // int16_t Cal_DB[3]; int32_t Cal_Adc_Squ[3]; UNION_PARA AlmPara; u8 PWRON_Erase; u8 AlarmClockOk;//产生报警 TIME_INFO AlarmClockInfo; } SYS_INFO; //128 typedef struct { u8 Header; u8 Machine_State; u8 Year ; u8 Month ; u8 Day ; u8 Hour ; u8 Minute ; u8 Second ; u16 Result[60]; //Noise_Result: Freq_Weight + Freq_Respon + DB_Value 存储用 } STORAGE; #endif 这个是定义的结构和变量 void UP_Key_Pro(PRESS_MODE_TypeDef Press_Mode) { u16 Tmp; switch(SysData.Sys_State) { case MAIN_STATE: // if(SysData.Cal_Mode) break; // if(Press_Mode!=SHORT_PRESS)break; // // switch(SysData.Freq_Weight) // { // case A_WEIGHT: // SysData.Freq_Weight = C_WEIGHT; // FREQ_WEIGHT_C; // break; // // case C_WEIGHT: // SysData.Freq_Weight = A_WEIGHT; // FREQ_WEIGHT_A; // break; // } // SysData.Save_Cnt=0; // Disp_State(DISP_FREQ_WEIGHT); break; case SET_STATE: if(Press_Mode == LONG_PRESS) { KEy[Num_Up].KeyProcessed = 0; Tmp = KeyOffset; } else { Tmp = 1; } // if(SysFlag.DispSetEn) // { // break; // } SysFlag.FlickEn = 0; SysData.SET_Value += Tmp; SysData.WaitReleaseKey = 0; Check_Set(); Disp_AlarmClockSet(); SysFlag.DispSetEn = 1; break; } } void DOWN_Key_Pro(PRESS_MODE_TypeDef Press_Mode) { u16 Tmp; switch(SysData.Sys_State) { case MAIN_STATE: //主界面温度切换 if(Press_Mode==LONG_PRESS) { SysData.Units = !SysData.Units; Tmp = KeyOffset; } break; case SET_STATE: if(Press_Mode==LONG_PRESS) { KEy[Num_Down].KeyProcessed=0; Tmp = KeyOffset; } else { Tmp=1; } SysFlag.FlickEn=0;//长按不允许闪烁 SysData.SET_Value-=Tmp; SysData.WaitReleaseKey=0; Check_Set(); Disp_AlarmClockSet(); SysFlag.DispSetEn=1; break; } } 这个是上下键的代码 现在的要求是,原来进入到设置页面时,第一个调整的值是噪音的报警值,第二个是报警时长,第三个是报警模式,现在要把第一个调整的值改成温湿度的报警值设置,其它不变,怎么修改
06-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值