369 lines
13 KiB
C
369 lines
13 KiB
C
|
|
#include "cat.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 NetworkingFlag = 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 catGpioInit(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 catReset(void) {
|
|||
|
|
uint8_t Multiple = 200; //<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",MqttInfo_Struct.ClientID,MqttInfo_Struct.Username,MqttInfo_Struct.Passward);
|
|||
|
|
sprintf(portbuff, "AT+MIPSTART=\"%s\",%d",MqttInfo_Struct.ServerIP,MqttInfo_Struct.ServerPort);
|
|||
|
|
sprintf(topicbuff, "AT+MSUB=\"%s%s\",0",MqttInfo_Struct.Topic,MqttInfo_Struct.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(3000); //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
HAL_Delay(3000);
|
|||
|
|
|
|||
|
|
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) {
|
|||
|
|
NetworkingFlag = 1;
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>OK!");
|
|||
|
|
} else {
|
|||
|
|
NetworkingFlag = 0;
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
HAL_Delay(Multiple);
|
|||
|
|
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
//CAT1_printf("AT+MPUB=\"/iot/sub/live/post/8c91c2a533b3c573\",0,0,\"{\\22header\\22:\\22iot.sub.live.post\\22,\\22version\\22:\\221.0\\22,\\22body\\22:{\\22online\\22:[{\\22uid\\22:\\2239dde8bcbf424b1b\\22,\\22secret\\22:\\22129460d7f87bd872\\22}]}}\"\r\n");
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> <20><>ָ<D7BC><D6B8> Lora<72><61><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>-02
|
|||
|
|
// CAT1_printf("AT+MPUB=\"/iot/sub/live/post/8c91c2a533b3c573\",0,0,\"{\\22header\\22:\\22iot.sub.live.post\\22,\\22version\\22:\\221.0\\22,\\22body\\22:{\\22online\\22:[{\\22uid\\22:\\2239dde8bcbf424b1b\\22,\\22secret\\22:\\22129460d7f87bd872\\22}]}}\"\r\n");
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD> Lora<72><61><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>-02
|
|||
|
|
// CAT1_printf("AT+MPUB=\"/iot/data/up/8c91c2a533b3c573\",0,0,\"{\\22header\\22:\\22iot.sub.live.post\\22,\\22version\\22:\\221.0\\22,\\22body\\22:{\\22online\\22:[{\\22uid\\22:\\2239dde8bcbf424b1b\\22,\\22secret\\22:\\22129460d7f87bd872\\22}]}}\"\r\n");
|
|||
|
|
|
|||
|
|
|
|||
|
|
//ʵ<>ʴ<EFBFBD><CAB4>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>
|
|||
|
|
//AT+MPUB="/iot/sub/live/post/8c91c2a533b3c573",0,0,"{\22header\22:\22iot.sub.live.post\22,\22version\22:\221.0\22,\22body\22:{\22online\22:[{\22uid\22:\2239dde8bcbf424b1b\22,\22secret\22:\22129460d7f87bd872\22}]}}"
|
|||
|
|
|
|||
|
|
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// "/iot/sub/live/post/8c91c2a533b3c573",0,0,
|
|||
|
|
//"{
|
|||
|
|
//"header":"iot.sub.live.post",
|
|||
|
|
//"version":"1.0",
|
|||
|
|
//"body":{
|
|||
|
|
// "online":[
|
|||
|
|
// {
|
|||
|
|
// "uid":"39dde8bcbf424b1b",
|
|||
|
|
// "secret":"129460d7f87bd872"
|
|||
|
|
// }
|
|||
|
|
// ]
|
|||
|
|
// }
|
|||
|
|
//}"
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2> <20><>ƽ̨<C6BD>ظ<EFBFBD><D8B8><EFBFBD>
|
|||
|
|
//<2F>豸<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ݣ<EFBFBD>+MSUB: "/iot/data/down/8c91c2a533b3c573",47 byte,{"code":200,"message":"success","success":true}
|
|||
|
|
|
|||
|
|
//<2F><>ƽ̨<C6BD><CCA8><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>ߺ<EFBFBD> <20><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
|||
|
|
//+MSUB: "/iot/data/down/8c91c2a533b3c573",158 byte,{"extend":{"uid":"39dde8bcbf424b1b"},"id":"976660012242325829","header":"iot.sub.prop.set","version":"1.0","body":{"sw1":{"time":1713020358015,"value":true}}}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>uid<69><64><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>豸id
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*-------------------------------------------------*/
|
|||
|
|
/*<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>0ֵ<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);
|
|||
|
|
u2flushReceiveBuffer(); //ˢ<>½<EFBFBD><C2BD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
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>0ֵ<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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*-------------------------------------------------*/
|
|||
|
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD> */
|
|||
|
|
/*<2A><> <20><><EFBFBD><EFBFBD>data <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
|
/*<2A><> <20><><EFBFBD><EFBFBD>datalen <20><><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> CLOSED */
|
|||
|
|
/*<2A><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> */
|
|||
|
|
/*-------------------------------------------------*/
|
|||
|
|
void u2PassiveEvent(uint8_t *data, uint16_t datalen) {
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(strstr((char *)data,"CLOSED")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
NVIC_SystemReset();//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>+MSUB: "/iot/data/down/cfd6dba662690a5e",118 byte,{"id":"977013940154814794","header":"iot.prop.set","version":"1.0","body":{"sw1":{"time":1713104741005,"value":true}}}
|
|||
|
|
if(strstr((char *)data,"iot.prop.set")) {
|
|||
|
|
log_info("<EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>");
|
|||
|
|
Relay_Action(data); // <20>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ָ<EFBFBD>+MSUB: "/iot/data/down/a284c67982b089f9",119 byte,{"id":"111750363407137710","header":"iot.prop.set","version":"1.0","body":{"sw1":{"time":1746600094207,"value":false}}}
|
|||
|
|
void Relay_Action(uint8_t *data) {
|
|||
|
|
uint8_t i = 0;
|
|||
|
|
char *TempPointer; // <20><>ʱָ<CAB1><D6B8>
|
|||
|
|
char CmdId[18] = {0}; // <20><><EFBFBD><EFBFBD>id<69><64><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(strstr((char *)data,MqttInfo_Struct.Topic)) { //<2F><><EFBFBD><EFBFBD> /iot/data/down/ <20><><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
|
|||
|
|
TempPointer = strstr((char *)data, ",\"id\":\"");
|
|||
|
|
if (TempPointer) {
|
|||
|
|
TempPointer += 7; // <20><><EFBFBD><EFBFBD> ,"id":"
|
|||
|
|
for (i = 0; i < 18; i++) {
|
|||
|
|
if ((TempPointer[i] >= '0' && TempPointer[i] <= '9') ||
|
|||
|
|
((TempPointer[i] >= 'a') && (TempPointer[i] <= 'z')) ||
|
|||
|
|
((TempPointer[i] >= 'A') && (TempPointer[i] <= 'Z'))) {
|
|||
|
|
CmdId[i] = TempPointer[i];
|
|||
|
|
} else {
|
|||
|
|
log_info("<EFBFBD>Ƿ<EFBFBD><EFBFBD>ַ<EFBFBD>: %c (ASCII %d)", TempPointer[i], TempPointer[i]);
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if(i == 18 && TempPointer[18] == '"') { // <20><>֤18λ<38><CEBB><EFBFBD>ֺ<EFBFBD><D6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
log_info("IDУ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>: %s", CmdId);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(strstr((char *)data,"\"sw")) { //<2F><><EFBFBD>ж<EFBFBD><D0B6>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
TempPointer = strstr((char *)data,"\"sw"); // <20><>¼swλ<77><CEBB>
|
|||
|
|
switch(TempPointer[3]) { // <20>жϲ<D0B6><CFB2><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
case '1':
|
|||
|
|
if (strstr((char *)data, "true")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
;;//
|
|||
|
|
}
|
|||
|
|
if (strstr((char *)data, "false")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ر<EFBFBD>");
|
|||
|
|
;;//
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case '2':
|
|||
|
|
if (strstr((char *)data, "true")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
;;//
|
|||
|
|
}
|
|||
|
|
if (strstr((char *)data, "false")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>ر<EFBFBD>");
|
|||
|
|
;;//
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case '3':
|
|||
|
|
if (strstr((char *)data, "true")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
;;//
|
|||
|
|
}
|
|||
|
|
if (strstr((char *)data, "false")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD>ر<EFBFBD>");
|
|||
|
|
;;//
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case '4':
|
|||
|
|
if (strstr((char *)data, "true")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
;;//
|
|||
|
|
}
|
|||
|
|
if (strstr((char *)data, "false")) {
|
|||
|
|
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD>ر<EFBFBD>");
|
|||
|
|
;;//
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD>ͻظ<CDBB><D8B8><EFBFBD>Ϣ OK
|
|||
|
|
CAT1_printf("AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22id\\22:\\22%s\\22,\\22code\\22:0,\\22message\\22:\\22OK\\22}\"\r\n",MqttInfo_Struct.ClientID, CmdId);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD> LED<45><44>˸
|
|||
|
|
void activeEvents(void) {
|
|||
|
|
|
|||
|
|
//LED<45><44>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ϩ<><CFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if (HAL_GetTick() - current_tick >= 200) {
|
|||
|
|
if(NetworkingFlag)//<2F><><EFBFBD>ӳɹ<D3B3>
|
|||
|
|
LED1_TOGGLE;
|
|||
|
|
else
|
|||
|
|
LED1_OFF;//Ϩ<><CFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>
|
|||
|
|
|
|||
|
|
current_tick = HAL_GetTick(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|