“12.2:初步实现esp8266处理响应数据,暂不完善。”
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
#include "Delay.h"
|
||||
#include "USART.h"
|
||||
#include "LED.h"
|
||||
#include "ESP8266.h"
|
||||
#include "NetFIFO.h"
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD>֤<EFBFBD>ĸĶ<C4B8><C4B6><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>ڡ<EFBFBD> */
|
||||
/* <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> */
|
||||
@@ -21,6 +23,12 @@ QueueHandle_t xQueueUsart3IrqHdlr;
|
||||
SemaphoreHandle_t xSemWifiRetOkHdlr;
|
||||
SemaphoreHandle_t xSemWifiRetErrHdlr;
|
||||
|
||||
/**
|
||||
* @brief ״ָ̬ʾLED<45><44><EFBFBD><EFBFBD>
|
||||
* @note ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PC13<31><33><EFBFBD>ŵ<EFBFBD>LED<45>ƣ<EFBFBD>ʵ<EFBFBD><CAB5>ϵͳ״̬<D7B4><CCAC>ָʾ<D6B8><CABE><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
|
||||
*/
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
void vTaskStateLed(void *pvParameters)
|
||||
{
|
||||
@@ -28,37 +36,62 @@ void vTaskStateLed(void *pvParameters)
|
||||
{
|
||||
vPc13LedOn();
|
||||
vTaskDelay(1000);
|
||||
vUsartPrintf(USART3, "USART3 Printf Test %d\r\n", 123);
|
||||
vPc13LedOff();
|
||||
vTaskDelay(1000);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD><EFBFBD>
|
||||
* @note <20><><EFBFBD><EFBFBD>FreeRTOS<4F>ж<EFBFBD><D0B6><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>л<EFBFBD><D0BB>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ESP8266<36><36><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݴ浽<DDB4><E6B5BD><EFBFBD>õ<EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
* @note <20><><EFBFBD>⣺<EFBFBD><E2A3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>쵽һ<ECB5BD><D2BB><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><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 vTaskWifiConnection(void *pvParameters)
|
||||
{
|
||||
uint8_t ucRetvalQueueWifiSt = 0;
|
||||
uint8_t ucBufferQueueRec = 0;
|
||||
vUsartPrintf(USART2, "AT+RST\r\n");
|
||||
vTaskDelay(1000);
|
||||
vUsartPrintf(USART2, "AT+CWMODE=1\r\n");
|
||||
vTaskDelay(1000);
|
||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD> */
|
||||
vUsartPrintf(USART2, "AT+CWJAP=\"Exploration\",\"IPSK25em.\"\r\n");
|
||||
while (1)
|
||||
{
|
||||
|
||||
ucRetvalQueueWifiSt = xQueueReceive(xQueueUsart2IrqHdlr, &ucBufferQueueRec, pdMS_TO_TICKS(30));
|
||||
/* code */
|
||||
if (ucRetvalQueueWifiSt == pdTRUE)
|
||||
{
|
||||
/* code */
|
||||
vUsartPrintf(USART3, (char *)&ucBufferQueueRec);
|
||||
}
|
||||
else
|
||||
{
|
||||
vUsartSendString(USART3, "Queue Receive failed!\r\n");
|
||||
vTaskDelay(300);
|
||||
NetFifoBuffer_t espBuffer;
|
||||
vNetBufferInit(&espBuffer);
|
||||
uint8_t ucRetvalQueueWifiSta = 0;
|
||||
uint8_t ucRetvalQueueByte = 0;
|
||||
while (1)
|
||||
{
|
||||
/* code */
|
||||
ucEsp8266SetMode(1);
|
||||
TickType_t startTime = xTaskGetTickCount();
|
||||
while ((xTaskGetTickCount() - startTime) < pdMS_TO_TICKS(3000))
|
||||
{
|
||||
ucRetvalQueueWifiSta = xQueueReceive(xQueueUsart2IrqHdlr,
|
||||
&ucRetvalQueueByte,
|
||||
pdMS_TO_TICKS(100));
|
||||
if (ucRetvalQueueWifiSta == pdTRUE)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ֽڴ<D6BD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
vNetBufferWrite(&espBuffer, (char)ucRetvalQueueByte);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
||||
uint8_t ucResponseStatus = ucEsp8266ResponseHandler(&espBuffer);
|
||||
if (strstr(espBuffer.cResponseBuffer, "ready") != NULL)
|
||||
{
|
||||
vUsartSendString(USART3, "WiFi Reset Successfully!\r\n");
|
||||
vUsartSendString(USART3, espBuffer.cResponseBuffer);
|
||||
vTaskDelay(1000);
|
||||
break;
|
||||
} else if (strstr(espBuffer.cResponseBuffer, "OK") != NULL)
|
||||
{
|
||||
/* code */
|
||||
vUsartSendString(USART3, "Set WiFi Mode Successfully!\r\n");
|
||||
vUsartSendString(USART3, espBuffer.cResponseBuffer);
|
||||
} else if (strstr(espBuffer.cResponseBuffer, "ERROR") != NULL ||
|
||||
strstr(espBuffer.cResponseBuffer, "FAIL") != NULL)
|
||||
{
|
||||
vUsartSendString(USART3, "Error!\r\n");
|
||||
vUsartSendString(USART3, espBuffer.cResponseBuffer);
|
||||
vUsartSendString(USART3, "\r\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,17 +119,23 @@ void vCreateQueuesList(void)
|
||||
(UBaseType_t) 64,
|
||||
(UBaseType_t) sizeof(uint8_t *));
|
||||
xQueueUsart2IrqHdlr = xQueueCreate(
|
||||
(UBaseType_t) 64,
|
||||
(UBaseType_t) sizeof(uint8_t *));
|
||||
(UBaseType_t) 1024,
|
||||
(UBaseType_t) sizeof(char *));
|
||||
xQueueUsart3IrqHdlr = xQueueCreate(
|
||||
(UBaseType_t) 64,
|
||||
(UBaseType_t) sizeof(uint8_t *));
|
||||
if (xQueueUsart2IrqHdlr == NULL)
|
||||
{
|
||||
/* code */
|
||||
vUsartSendString(USART1, "Queue Init Failed.\r\n");
|
||||
vTaskDelay(1000);
|
||||
}
|
||||
}
|
||||
|
||||
void vCreateSemaphoresList(void)
|
||||
{
|
||||
xSemWifiRetOkHdlr = xSemaphoreCreateBinary();
|
||||
xSemWifiRetErrHdlr = xSemaphoreCreateBinary();
|
||||
xSemWifiRetOkHdlr = xSemaphoreCreateBinary();
|
||||
xSemWifiRetErrHdlr = xSemaphoreCreateBinary();
|
||||
}
|
||||
|
||||
int main(void)
|
||||
|
||||
Reference in New Issue
Block a user