HAL_Project/Project -APP-V1.0/Hardware/CAT/cat.c

231 lines
7.9 KiB
C
Raw Permalink Normal View History

2025-05-09 15:43:42 +08:00
#include "main.h"
uint32_t current_tick = 0; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>LED<45><44>˸ Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>
_Bool Networking = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ 1<><31><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD>
char databuff[256]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t online_counter = 1; //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ߵļ<DFB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t data_counter = 1; //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ݵļ<DDB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void catInit(void) {
GPIO_InitTypeDef GPIO_Initure = {0};
// GPIOA_RCC_ENABLE;
GPIOC_RCC_ENABLE;
GPIO_Initure.Pin= CAT_POW_Pin; //<2F><><EFBFBD>õ<EFBFBD>Դ<EFBFBD><D4B4>
GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
GPIO_Initure.Pull = GPIO_NOPULL; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; //<2F><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>)
HAL_GPIO_Init(CAT_POW_GPIO_Port,&GPIO_Initure); //<2F><><EFBFBD><EFBFBD>
// GPIO_Initure.Pin= CAT_RST_Pin; //<2F><><EFBFBD>ø<EFBFBD>λ<EFBFBD><CEBB><><D4A4>)
// GPIO_Initure.Pull = GPIO_NOPULL; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// GPIO_Initure.Mode = GPIO_MODE_OUTPUT_OD; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
// GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; //<2F><><EFBFBD><EFBFBD>
// HAL_GPIO_Init(CAT_RST_GPIO_Port,&GPIO_Initure); //<2F><><EFBFBD><EFBFBD>
GPIO_Initure.Pin = CAT_RUN_Pin ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1>
GPIO_Initure.Mode = GPIO_MODE_INPUT; //<2F><><EFBFBD><EFBFBD>ģʽ
GPIO_Initure.Pull = GPIO_PULLUP; //ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; //<2F><><EFBFBD><EFBFBD>
HAL_GPIO_Init(CAT_RUN_GPIO_Port,&GPIO_Initure); //<2F><><EFBFBD><EFBFBD>
// GPIO_Initure.Pin = CAT_NET_Pin ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
// GPIO_Initure.Mode = GPIO_MODE_INPUT; //<2F><><EFBFBD><EFBFBD>ģʽ
// GPIO_Initure.Pull = GPIO_PULLUP; //ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; //<2F><><EFBFBD><EFBFBD>
// HAL_GPIO_Init(CAT_NET_GPIO_Port,&GPIO_Initure); //<2F><><EFBFBD><EFBFBD>
}
//ģ<><EFBFBD><E9BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD> +NITZ: 24/04/13,12:11:59+32,0 ʵ<><CAB5>ʱ<EFBFBD><CAB1> 2024/4/13 20:11:59<35><39>
void catConnectServer(void) {
uint8_t Multiple = 100; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ Ĭ<><C4AC>100ms
uint8_t netstep = 0;
char serverbuff[100] = {0}; //<2F><><EFBFBD>ӣ<EFBFBD>AT+MCONFIG="8c91c2a533b3c573","965669176415378622","ad592e4c3e7117c6",0,0,0,0
char portbuff[50] = {0}; //<2F><><EFBFBD>ӣ<EFBFBD>AT+MIPSTART="58.17.14.95",1880
char topicbuff[50]= {0}; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ƽ̨<C6BD>·<EFBFBD><C2B7>Ŀ<EFBFBD><C4BF><EFBFBD>ָ<EFBFBD><D6B8>
sprintf(serverbuff,"AT+MCONFIG=\"%s\",\"%s\",\"%s\",0,0,0,0",MqttInfoStr.ClientID,MqttInfoStr.Username,MqttInfoStr.Passward);
sprintf(portbuff, "AT+MIPSTART=\"%s\",%d",MqttInfoStr.ServerIP,MqttInfoStr.ServerPort);
sprintf(topicbuff, "AT+MSUB=\"%s%s\",0",MqttInfoStr.Topic,MqttInfoStr.ClientID);
#if 0
if(POWER_STA==1) { //<2F><><EFBFBD><EFBFBD>PB1<42>Ǹߵ<C7B8>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ʾĿǰ<C4BF><C7B0><EFBFBD>ڹػ<DAB9>״̬
log_info("Ŀǰ4Gģ<EFBFBD><EFBFBD>ڹػ<EFBFBD>״̬<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
POWER_KEY(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_Delay(1500); //<2F><>ʱ
POWER_KEY(0); //<2F><><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>
} else { //<2F><>֮PA0<41>ǵ͵<C7B5>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ʾĿǰ<C4BF><C7B0><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD>״̬
log_info("Ŀǰ4Gģ<EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
POWER_KEY(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_Delay(1500); //<2F><>ʱ
POWER_KEY(0); //<2F><><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>ػ<EFBFBD>
HAL_Delay(3000); //<2F><><EFBFBD><EFBFBD>
POWER_KEY(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_Delay(1500); //<2F><>ʱ
POWER_KEY(0); //<2F><><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
#endif
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ");
POWER_KEY(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ
HAL_Delay(1000); //<2F><>ʱ
POWER_KEY(0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_Delay(4000); //<2F><><EFBFBD><EFBFBD>
HAL_Delay(Multiple);
if(catSendCmd("AT","OK", 8,30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("<EFBFBD>رջ<EFBFBD><EFBFBD><EFBFBD>"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("ATE0","OK", 5, 30)) {
log_info("<EFBFBD>رջ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD>رջ<EFBFBD><EFBFBD>Գɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>״̬"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("AT+CPIN?","READY", 5, 30)) {
log_info("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>״̬ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>״̬<EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("AT+CIPMUX=0","OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("AT+CSTT","OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("AT+CIICR","OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd(serverbuff,"OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD>˿<EFBFBD>");
if(catSendCmd(portbuff,"OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD>˿<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD>˿ڳɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>");
if(catSendCmd("AT+MCONNECT=1,60","OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
if(catSendCmd(topicbuff,"SUBACK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d",netstep);
if(netstep >= 10) {
Networking = 1;
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>OK!");
} else {
Networking = 0;
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
HAL_Delay(Multiple);
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
/*-------------------------------------------------*/
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E9B7A2>ָ<EFBFBD><D6B8> */
/*<2A><> <20><><EFBFBD><EFBFBD>cmd<6D><64>ָ<EFBFBD><D6B8> */
/*<2A><> <20><><EFBFBD><EFBFBD>ret<65><74><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD> */
/*<2A><> <20><><EFBFBD><EFBFBD>cnt<6E><74><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD> */
/*<2A><> <20><><EFBFBD><EFBFBD>timeout<75><74><EFBFBD><EFBFBD>ʱʱ<CAB1>䣨50ms<6D>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD> */
/*<2A><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0<EFBFBD><30><EFBFBD><EFBFBD>ȷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*-------------------------------------------------*/
uint8_t catSendCmd(char *cmd, char *ret, uint8_t cnt, uint8_t timeout) {
uint8_t result = 1; // Ĭ<>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>󣨷<EFBFBD><30><D6B5>
while(cnt > 0 && result != 0) {
CAT1_printf("%s\r\n", cmd); // <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> <20><>β<EFBFBD><CEB2><EFBFBD>ϻ<EFBFBD><CFBB>лس<D0BB>
uint8_t current_timeout = timeout;
while(--current_timeout) {
HAL_Delay(50);
usart2RxHandle();//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
if (strstr((char *)U2_CopyBuff, ret)) {//<2F><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
result = 0; // <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļظ<C4BB><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ȷ<EFBFBD><C8B7><30><D6B5>
break;
}
}
if (current_timeout == 0) // <20><><EFBFBD><EFBFBD>timeout<=0<><30>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱδ<CAB1>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
log_info("<EFBFBD><EFBFBD>%d<>γ<EFBFBD>ʱ",cnt);
cnt--; // <20><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>1
}
return result;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD> LED<45><44>˸
void activeEvents(void) {
Networking = 1;
if (HAL_GetTick() - current_tick >= 1000) {
if(Networking){ //<2F><><EFBFBD>ӳɹ<D3B3>
LED1_TOGGLE; //LED<45><44>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ϩ<><CFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else{
LED1_OFF;//Ϩ<><CFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>
}
current_tick = HAL_GetTick(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}
}