diff --git a/Source/EC800M_4G.c b/Source/EC800M_4G.c index 72c358e..7d37a4b 100644 --- a/Source/EC800M_4G.c +++ b/Source/EC800M_4G.c @@ -85,7 +85,7 @@ int _4G_uart_read_string_until_response(char *DATA, int *DATA_LEN, const char *e } } -int EC800M_4G_INIT() +int EC800M_4G_INIT(char *IP, int PORT) { // AT+CFUN=1,1 //uart_send_string("AT+CFUN=1,1\r\n"); @@ -151,9 +151,11 @@ int EC800M_4G_INIT() printf("%s %d\n", _4G_DATA, _4G_DATA_LEN); // AT+QIOPEN=1,0,"TCP","47.240.75.93",8009,0,1 - uart_send_string("AT+QIOPEN=1,0,\"TCP\",\"123.60.29.178\",8009,0,1\r\n"); + char QIOPEN[270] = { 0 }; + sprintf(QIOPEN, _QIOPEN, IP, PORT); + uart_send_string(QIOPEN); if (-1 == _4G_uart_read_string_until_response(_4G_DATA, &_4G_DATA_LEN, "0,0")) { - printf("EC800M Module 4G \"AT+QIOPEN=1,0,\"TCP\",\"123.60.29.178\",8009,0,1\r\n\" Timeout!\n"); + printf("EC800M Module 4G AT+QIOPEN Timeout!\n"); return -1; } printf("%s %d\n", _4G_DATA, _4G_DATA_LEN); @@ -297,12 +299,12 @@ int establish_tcp_connection() return 0; } - int _r = EC800M_4G_INIT(); // 第一次建立TCP + int _r = EC800M_4G_INIT(SERVER_HOST, SERVER_POER); // 第一次建立TCP int retry_count = 0; // 重试计数器 while (_r == -1 && retry_count < TCP_MAX_RETRY) { printf("TCP establishment failed! Retrying...\n"); - _r = EC800M_4G_INIT(); // 重新建立TCP连接 + _r = EC800M_4G_INIT(SERVER_HOST, SERVER_POER); // 重新建立TCP连接 retry_count++; sleep_ms(9000); // 等待一段时间后重试 } @@ -370,7 +372,7 @@ void EC800M_4G(void *p) EC800M_4G_RECV("aixiao.me\r\n"); - + // GPS Module EC800M_GPS(NULL); vTaskDelay(pdMS_TO_TICKS(3000)); // 非阻塞延时 diff --git a/Source/EC800M_4G.h b/Source/EC800M_4G.h index 926b5a6..706f194 100644 --- a/Source/EC800M_4G.h +++ b/Source/EC800M_4G.h @@ -33,7 +33,12 @@ #define EC800M_4G_UART_BAUD_RATE 115200 #define TCP_MAX_RETRY 3 // TCP建立最大重试次数 -#define _4G_DATA_LENGTH 8192 +#define _4G_DATA_LENGTH 8192 // 数组最大长度 + +#define SERVER_HOST "123.60.29.178" // TCP服务器IP +#define SERVER_POER 8009 // TCP服务器端口 + +#define _QIOPEN "AT+QIOPEN=1,0,\"TCP\",\"%s\",%d,0,1\r\n" extern void EC800M_4G(void *p); diff --git a/Source/main.c b/Source/main.c index 17affb7..4433535 100644 --- a/Source/main.c +++ b/Source/main.c @@ -29,6 +29,7 @@ void Led_Blinky(void *pvParameters) while (1) { vTaskDelay(pdMS_TO_TICKS(500)); gpio_put(LED_PIN, 1); + vTaskDelay(pdMS_TO_TICKS(500)); gpio_put(LED_PIN, 0); }