/* * @Description: * @Version: 1.0 * @Autor: lzc * @Date: 2022-09-22 14:48:44 * @LastEditors: lzc * @LastEditTime: 2024-06-17 10:46:25 */ #include "main.h" void AllLedOff(void); void SC_ready(void); char NetworkConnectionWay = 0; char opm_cal_flag = 0; // 光功校准标志位 uint16_t timer_key = 0; // 判断配网按键长按 uint16_t timer_opm_key = 0; // 判断校准按键长按 extern char start_ConnectNet_flg; void key_optical(void) { // Key_Cal_Flag--配网使用 if (Key_Cal_Flag == 0) // 配网成功 { if (KEY_CAL == RESET) // 判断是key_cal_flg否为低电平 { AllLedOff(); TIM_Cmd(TIM3, DISABLE); // 使能定时器3 while (KEY_CAL == RESET) { timer_key++; Key_Cal_Flag = 1; // 暂时不进行opm LED_R = 1; LED_G = 1; LED_B = 1; if (timer_key > 1000) // 20s 上限 { break; } if (timer_key > 100 && timer_key < 500) { network_ready(); } else if (timer_key >= 500) { SC_ready(); // 初始化 } delay_ms(20); } // 2-10 正常配网 if (timer_key > 100 && timer_key < 500) { timer_key = 0; start_ConnectNet_flg = 1; NetworkConnectionWay = 0; // AP配网 delay_ms(500); USART1_SendData(network, 5); // 配网指令 delay_ms(500); USART1_SendData(network, 5); // 配网指令 TIM_Cmd(TIM3, DISABLE); // 失能定时器3 } // 大于10 SC (废弃方案) // else if (timer_key >= 500) //{ // timer_key = 0; // start_ConnectNet_flg = 1; // NetworkConnectionWay = 1; // SC配网 // USART1_SendData(SC_Cmd, 5); // 配网指令 //} else { timer_key = 0; // 计数清零 Key_Cal_Flag = 0; // 恢复opm TIM_Cmd(TIM3, ENABLE); // 使能定时器3 } } // 光功校准按键按下 if (KEY_WPS == RESET) // 判断是校准按钮否为低电平 { /* AllLedOff(); TIM_Cmd(TIM3, DISABLE); // 使能定时器3 while (KEY_WPS == RESET) { timer_opm_key++; Key_Cal_Flag = 1; // 暂时不进行opm if (timer_opm_key >= 200) // 4s起作用 { opm_cal_flag = 1; opm_cal_ready(); timer_opm_key = 0; break; } delay_ms(20); } if (timer_opm_key < 200) // 误按此按键 { timer_opm_key = 0; // 计数清零 Key_Cal_Flag = 0; // 恢复opm TIM_Cmd(TIM3, ENABLE); // 使能定时器3 } // else // { // timer_opm_key = 0; //计数清零 // Key_Cal_Flag = 0; //恢复opm // } */ } } else { ; } } void network_ready(void) { TIM_Cmd(TIM3, DISABLE); // 使能定时器3 Key_Cal_Flag = 1; // 启动配网功能 USART_RX_Length = 0; wifi_len = 0; LED_R = 1; LED_G = 1; LED_B = 0; } void opm_cal_ready(void) { TIM_Cmd(TIM3, DISABLE); // 失能定时器3 Optical_Calibration_Value = 0.0f; wifi_len = 0; LED_R = 1; LED_G = 1; LED_B = 1; } void SC_ready(void) { TIM_Cmd(TIM3, DISABLE); // 使能定时器3 Key_Cal_Flag = 1; // 启动配网功能 USART_RX_Length = 0; wifi_len = 0; LED_R = 0; LED_G = 1; LED_B = 0; printf("SC_ready\r\n"); } void AllLedOff(void) { LED_R = 1; LED_G = 1; LED_B = 1; }