20260106:移植了野火的ESP-01s驱动代码,初步实现功能。
This commit is contained in:
@@ -9,10 +9,10 @@
|
||||
#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> */
|
||||
TaskHandle_t xTaskStateLedHdlr;
|
||||
TaskHandle_t xTaskWifiConnectHdlr;
|
||||
TaskHandle_t xTaskBufferRxHdlr;
|
||||
TaskHandle_t xTaskApConnectHdlr;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD> */
|
||||
QueueHandle_t xQueueUsart1IrqHdlr;
|
||||
@@ -41,60 +41,26 @@ void vTaskStateLed(void *pvParameters)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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)
|
||||
|
||||
void vTaskApConnection(void *pvParameters)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
while (1)
|
||||
{
|
||||
macESP8266_CH_ENABLE ();
|
||||
vEsp8266AtTest ();
|
||||
bEsp8266NetModeChoose ( STA );
|
||||
while ( ! bEsp8266JoinAp ( macUser_ESP8266_ApSsid, macUser_ESP8266_ApPwd ) );
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
* @note <20>ڴ˺<DAB4><CBBA><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊÿ<CEAA><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>Ķ<EFBFBD>ջ<EFBFBD><D5BB>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void vCreateTasksList(void)
|
||||
{
|
||||
xTaskCreate(
|
||||
@@ -105,39 +71,58 @@ void vCreateTasksList(void)
|
||||
(UBaseType_t ) 2,
|
||||
(TaskHandle_t * ) &xTaskStateLedHdlr);
|
||||
xTaskCreate(
|
||||
(TaskFunction_t ) vTaskWifiConnection,
|
||||
(TaskFunction_t ) vTaskApConnection,
|
||||
(char * ) "TaskName_WifiConnectToAP",
|
||||
(configSTACK_DEPTH_TYPE) 512,
|
||||
(void * ) NULL,
|
||||
(UBaseType_t ) 2,
|
||||
(TaskHandle_t * ) &xTaskWifiConnectHdlr);
|
||||
(TaskHandle_t * ) &xTaskApConnectHdlr);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
* @note <20>ڴ˺<DAB4><CBBA><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ķ<EFBFBD><C4B6>У<EFBFBD><D0A3><EFBFBD>Ϊÿ<CEAA><C3BF><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>ij<EFBFBD><C4B3>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void vCreateQueuesList(void)
|
||||
{
|
||||
xQueueUsart1IrqHdlr = xQueueCreate(
|
||||
#if (ENABLE_FREERTOS_API_QUEUE_USART1_IRQ == 1)
|
||||
xQueueUsart1IrqHdlr = xQueueCreate(
|
||||
(UBaseType_t) 64,
|
||||
(UBaseType_t) sizeof(uint8_t *));
|
||||
xQueueUsart2IrqHdlr = xQueueCreate(
|
||||
#endif
|
||||
#if (ENABLE_FREERTOS_API_QUEUE_USART2_IRQ == 1)
|
||||
xQueueUsart2IrqHdlr = xQueueCreate(
|
||||
(UBaseType_t) 1024,
|
||||
(UBaseType_t) sizeof(char *));
|
||||
xQueueUsart3IrqHdlr = xQueueCreate(
|
||||
#endif
|
||||
#if (ENABLE_FREERTOS_API_QUEUE_USART3_IRQ == 1)
|
||||
xQueueUsart3IrqHdlr = xQueueCreate(
|
||||
(UBaseType_t) 64,
|
||||
(UBaseType_t) sizeof(uint8_t *));
|
||||
if (xQueueUsart2IrqHdlr == NULL)
|
||||
{
|
||||
/* code */
|
||||
vUsartSendString(USART1, "Queue Init Failed.\r\n");
|
||||
vTaskDelay(1000);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
* @note <20>ڴ˺<DAB4><CBBA><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void vCreateSemaphoresList(void)
|
||||
{
|
||||
xSemWifiRetOkHdlr = xSemaphoreCreateBinary();
|
||||
xSemWifiRetErrHdlr = xSemaphoreCreateBinary();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @note <20><>ʼ<EFBFBD><CABC>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>ģ<EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F1A1A2B6>к<EFBFBD><D0BA>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param None
|
||||
* @retval int
|
||||
*/
|
||||
int main(void)
|
||||
{
|
||||
vUsartInit(USART2, 115200);
|
||||
|
||||
Reference in New Issue
Block a user