11.22:完善注释;提高代码的移植性;完善串口程序。

This commit is contained in:
2025-11-22 20:16:58 +08:00
parent 2891992946
commit 33e53ec469
32 changed files with 5308 additions and 266 deletions

View File

@@ -1,25 +1,110 @@
#include "stm32f10x.h" // Device header
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "semphr.h"
#include "Delay.h"
#include "USART.h"
#include "LED.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 xSampleTaskHandler;
TaskHandle_t xTaskStateLedHdlr;
TaskHandle_t xTaskWifiConnectHdlr;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD> */
QueueHandle_t xQueueUsart1IrqHdlr;
QueueHandle_t xQueueUsart2IrqHdlr;
QueueHandle_t xQueueUsart3IrqHdlr;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
SemaphoreHandle_t xSemWifiRetOkHdlr;
SemaphoreHandle_t xSemWifiRetErrHdlr;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
void vSampleTask(void *pvParameters)
void vTaskStateLed(void *pvParameters)
{
while(1)
{
}
while(1)
{
vPc13LedOn();
vTaskDelay(1000);
vUsartPrintf(USART3, "USART3 Printf Test\r%d\n", 123);
vPc13LedOff();
vTaskDelay(1000);
}
}
void vTaskWifiConnection(void *pvParameters)
{
uint8_t ucRetvalQueueWifiSt = 0;
uint8_t ucBufferQueueRec = 0;
while (1)
{
vUsartSendString(USART2, "AT\r\n");
vTaskDelay(1000);
ucRetvalQueueWifiSt = xQueueReceive(xQueueUsart2IrqHdlr, &ucBufferQueueRec, pdMS_TO_TICKS(30));
/* code */
if (ucRetvalQueueWifiSt == pdTRUE)
{
/* code */
vUsartSendString(USART3, (char *)&ucBufferQueueRec);
} else
{
vUsartSendString(USART3, "Queue Receive failed!\r\n");
vTaskDelay(300);
}
}
}
void vCreateTasksList(void)
{
xTaskCreate(
(TaskFunction_t ) vTaskStateLed,
(char * ) "TaskName_StateLed",
(configSTACK_DEPTH_TYPE) 256,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskStateLedHdlr);
xTaskCreate(
(TaskFunction_t ) vTaskWifiConnection,
(char * ) "TaskName_WifiConnectToAP",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskWifiConnectHdlr);
}
void vCreateQueuesList(void)
{
xQueueUsart1IrqHdlr = xQueueCreate(
(UBaseType_t) 64,
(UBaseType_t) sizeof(uint8_t *));
xQueueUsart2IrqHdlr = xQueueCreate(
(UBaseType_t) 64,
(UBaseType_t) sizeof(uint8_t *));
xQueueUsart3IrqHdlr = xQueueCreate(
(UBaseType_t) 64,
(UBaseType_t) sizeof(uint8_t *));
}
void vCreateSemaphoresList(void)
{
xSemWifiRetOkHdlr = xSemaphoreCreateBinary();
xSemWifiRetErrHdlr = xSemaphoreCreateBinary();
}
int main(void)
{
xTaskCreate(vSampleTask, "SampleTask", 128, NULL, 2, &xSampleTaskHandler);
vTaskStartScheduler();
while(1)
{
}
vUsartInit(USART1, 115200);
vUsartInit(USART2, 115200);
vDelayInit();
vPc13LedInit();
vCreateTasksList();
vCreateQueuesList();
vCreateSemaphoresList();
vTaskStartScheduler();
while(1)
{
}
}