155 lines
4.1 KiB
C
155 lines
4.1 KiB
C
/*
|
|
* @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;
|
|
}
|