20260111:解决了连接MQTT平台的bug(sprintf数组越界bug和参数类型错误)

This commit is contained in:
2026-01-11 18:57:18 +08:00
parent 3fc72c66be
commit ce68cc42b3
6 changed files with 312 additions and 233 deletions

View File

@@ -7,7 +7,6 @@
#include "USART.h"
#include "LED.h"
#include "ESP8266.h"
#include "NetFIFO.h"
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һһ<D2BB><D2BB>Ӧ<EFBFBD><D3A6> */
TaskHandle_t xTaskStateLedHdlr;
@@ -42,7 +41,12 @@ void vTaskStateLed(void *pvParameters)
}
}
/**
* @brief <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD><EFBFBD>
* @note ͨ<><CDA8>ESP8266ģ<36><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>WiFi<46>ȵ㡣
* @param *pvParameters <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ض<EFBFBD><D8B6>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ָ<EFBFBD><D6B8>
* @retval None
*/
void vTaskWifiJoinAp(void *pvParameters)
{
while (1)
@@ -56,36 +60,52 @@ void vTaskWifiJoinAp(void *pvParameters)
}
}
/**
* @brief <20><>ʼ<EFBFBD><CABC>MQTTЭ<54><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ͨ<><CDA8>ESP8266ģ<36><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>MQTTЭ<54><D0AD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>
* @param *pvParameters <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ض<EFBFBD><D8B6>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ָ<EFBFBD><D6B8>
* @retval None
*/
void vTaskWifiMqttInit(void *pvParameters)
{
// bool bMqttUserCfgInit = false, bMqttCliIdInit = false, bMqttConnectResult = false;
BaseType_t bMqttConnectResult = pdFALSE;
while (1)
{
// MQTT<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// bMqttUserCfgInit = bEsp8266Command("AT+MQTTUSERCFG=0,1,\"NULL\",\"stm32\",\"IPSK25em.\",0,0,\"\"", "OK", NULL, 1500);
// bMqttCliIdInit = bEsp8266Command("AT+MQTTCLIENTID=0,\"TestServer&stm32\"", "OK", NULL, 1500);
// bMqttConnectResult = bEsp8266Command("AT+MQTTCONN=0,\"121.36.104.9\",1883,1", "OK", NULL, 2000);
// if (bMqttUserCfgInit == true && bMqttCliIdInit == true && bMqttConnectResult == true)
// if (*ucMqttMode == ALIYUN)
// {
// /* code */
// if (bEsp8266MqttInit(ESP8266_ALIYUN_MQTT_USERNAME, ESP8266_ALIYUN_MQTT_PASSWORD, ESP8266_ALIYUN_MQTT_CLIENT_ID,
// ESP8266_ALIYUN_MQTT_IP, ESP8266_ALIYUN_MQTT_PORT, ESP8266_ALIYUN_MQTT_SUBSCRIBE_TOPIC) == true)
// {
// /* code */
// vUsartPrintf(USART1, "MQTT Init Success\r\n");
// vTaskDelete(NULL);
// }
// }
// else if (*ucMqttMode == EMQX)
// {
// /* code */
// if (bEsp8266MqttInit(ESP8266_MQTT_USERNAME, ESP8266_MQTT_PASSWORD, ESP8266_MQTT_CLIENT_ID,
// ESP8266_MQTT_SERVER_IP, ESP8266_MQTT_SERVER_PORT, NULL) == true)
// {
// /* code */
// vUsartPrintf(USART1, "MQTT Init Success\r\n");
// vTaskDelete(NULL);
// }
// }
if (bEsp8266MqttInit(ESP8266_ALIYUN_MQTT_USERNAME, ESP8266_ALIYUN_MQTT_PASSWORD, ESP8266_ALIYUN_MQTT_CLIENT_ID,
ESP8266_ALIYUN_MQTT_IP, ESP8266_ALIYUN_MQTT_PORT, ESP8266_ALIYUN_MQTT_SUBSCRIBE_TOPIC) == true)
{
/* code */
vUsartPrintf(USART1, "MQTT Init Success\r\n");
vTaskDelete(NULL);
}
// if (bEsp8266MqttInit(ESP8266_MQTT_USERNAME, ESP8266_MQTT_PASSWORD, ESP8266_MQTT_CLIENT_ID,
// ESP8266_MQTT_SERVER_IP, ESP8266_MQTT_SERVER_PORT, NULL) == true)
// {
// /* code */
// vUsartPrintf(USART1, "MQTT Init Success\r\n");
// break;
// } else
// {
// /* code */
// vUsartPrintf(USART1, "MQTT Init Failed, Retry...\r\n");
// vDelayMs(2000);
// vTaskDelete(NULL);
// }
bMqttConnectResult = bEsp8266MqttInit(ESP8266_MQTT_USERNAME, ESP8266_MQTT_PASSWORD, ESP8266_MQTT_CLIENT_ID, ESP8266_MQTT_SERVER_IP, ESP8266_MQTT_SERVER_PORT);
if (bMqttConnectResult == pdFALSE)
{
vUsartPrintf(USART1, "MQTT Init Failed, Retry...\r\n");
vDelayMs(2000);
continue;
}
vUsartPrintf(USART1, "MQTT Init Success\r\n");
vTaskDelete(NULL);
}
}
@@ -115,7 +135,7 @@ void vCreateTasksList(void)
(TaskFunction_t ) vTaskWifiMqttInit,
(char * ) "TaskName_WifiInitMQTTProtocol",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskWifiMqttInitHdlr);
}