11.8:更改了一些bug

This commit is contained in:
2025-11-08 01:32:24 +08:00
parent 3e3e96e017
commit 998b8a45d0
6 changed files with 164 additions and 132 deletions

View File

@@ -37,69 +37,65 @@ void vDht11Task(void *pvParameters)
{
DHT11Data_t xDHT11Data;
/* <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD>顣Ҫ<E9A1A3><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD>Сһһ<D2BB><D2BB>Ӧ<EFBFBD><D3A6> */
uint8_t ucSendTempBuffer[5] = {0};
uint8_t ucSendHumiBuffer[5] = {0};
uint8_t ucSendTempData = 0;
uint8_t ucSendHumiData = 0;
if (vDht11Init() != 0)
{
/* <20><>ʼ<EFBFBD><CABC>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
// vUsart3Printf("DHT11 Init Failed\r\n.");
ucSendTempData = ucSendHumiData = 0xAA;
xQueueSend(xQueueTempHdlr, &ucSendTempData, pdMS_TO_TICKS(10));
xQueueSend(xQueueHumiHdlr, &ucSendHumiData, pdMS_TO_TICKS(10));
// vTaskDelay(50);
}
while (1)
{
/* code */
if (vDht11Init() != 0)
{
/* <20><>ʼ<EFBFBD><CABC>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
// vUsart3Printf("DHT11 Init Failed\r\n.");
for (int iIndex = 0; iIndex < 5; iIndex++)
{
ucSendTempBuffer[iIndex] = 0xAA;
vTaskDelay(50);
ucSendHumiBuffer[iIndex] = 0xAA;
vTaskDelay(50);
}
}
if (vDht11ReadData(&xDHT11Data.ucTemp,&xDHT11Data.ucHumi) == 0)
{
/* code */
for (int iIndex = 0; iIndex < 5; iIndex++)
{
/* code */
ucSendTempBuffer[iIndex] = xDHT11Data.ucTemp;
vTaskDelay(50);
ucSendHumiBuffer[iIndex] = xDHT11Data.ucHumi;
vTaskDelay(50);
}
ucSendTempData = xDHT11Data.ucTemp;
// vTaskDelay(50);
ucSendHumiData = xDHT11Data.ucHumi;
// vTaskDelay(50);
/* д<><D0B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĵȴ<C4B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĵȴ<C4B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ϵͳĬ<CDB3><C4AC>ʱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>Ϊ׼<CEAA><D7BC> */
xQueueSend(xQueueTempHdlr, ucSendTempBuffer, 0);
xQueueSend(xQueueHumiHdlr, ucSendHumiBuffer, 0);
xQueueSend(xQueueTempHdlr, &ucSendTempData, pdMS_TO_TICKS(10));
xQueueSend(xQueueHumiHdlr, &ucSendHumiData, pdMS_TO_TICKS(10));
} else
{
// vUsart3Printf("DHT11 Read Data Failed\r\n.");
for (int iIndex = 0; iIndex < 5; iIndex++)
{
ucSendTempBuffer[iIndex] = 0xAB;
vTaskDelay(50);
ucSendHumiBuffer[iIndex] = 0xAB;
vTaskDelay(50);
}
ucSendTempData = ucSendHumiData = 0xAB;
// vTaskDelay(50);
}
}
}
void vLoRaRecMsgTask(void *pvParameters)
{
uint8_t pucRecIsrBuffer[128] = {0};
uint8_t ucBufferRecFromIsr[128] = {0};
static uint32_t ulLastSendTime = 0;
while (1)
{
/* code */
if (xQueueReceive(xQueueUsart3ReHdlr, pucRecIsrBuffer, 0) == pdTRUE)
if (xQueueReceive(xQueueUsart3ReHdlr, ucBufferRecFromIsr, pdMS_TO_TICKS(10)) == pdTRUE)
{
/* code */
vUsart3SendArray(pucRecIsrBuffer, 1);
// ֻ<>г<EFBFBD><D0B3><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1>û<EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD>
if ((xTaskGetTickCount() - ulLastSendTime) > pdMS_TO_TICKS(1000))
{
vLoRaConnectionPkt(xLoRaGateConfig.ucLoRaGateChannel);
vTaskDelay(10);
}
vUsart3SendArray(ucBufferRecFromIsr, 1);
ulLastSendTime = xTaskGetTickCount();
}
}
}
void vLoRaToGatePktTask(void *pvParameters)
{
uint8_t ucRecTempBuffer[5] = {0};
uint8_t ucRecHumiBuffer[5] = {0};
uint8_t ucRecTempData = 0;
uint8_t ucRecHumiData = 0;
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ճɹ<D5B3> */
BaseType_t xQueueTempRetval, xQueueHumiRetval;
while (1)
@@ -108,27 +104,27 @@ void vLoRaToGatePktTask(void *pvParameters)
/* <20><><EFBFBD>ն<EFBFBD><D5B6>У<EFBFBD><D0A3><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݵĵȴ<C4B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ0<CEAA><30>0~portMAX_DELAY<41><59>portMAX_DELAY<41><59><EFBFBD>֣<EFBFBD><D6A3>ֱ<EFBFBD><D6B1><EFBFBD>Ӧ
* һ<><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ڵȴ<DAB5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3>ý<EFBFBD><C3BD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>
*/
xQueueTempRetval = xQueueReceive(xQueueTempHdlr, ucRecTempBuffer, 0);
xQueueHumiRetval = xQueueReceive(xQueueHumiHdlr, ucRecHumiBuffer, 0);
xQueueTempRetval = xQueueReceive(xQueueTempHdlr, &ucRecTempData, pdMS_TO_TICKS(10));
xQueueHumiRetval = xQueueReceive(xQueueHumiHdlr, &ucRecHumiData, pdMS_TO_TICKS(10));
/* <20><><EFBFBD><EFBFBD> */
vLoRaConnectionPkt();
vLoRaConnectionPkt(xLoRaGateConfig.ucLoRaGateChannel);
vLoRaToGateIdPkt(xLoRaNode1Config.ucLoRaNode1Identifier);
vLoRaToGateSenIdPkt(xLoRaSensorID.ucIdDht11);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD> */
if (xQueueTempRetval == pdTRUE && xQueueHumiRetval == pdTRUE)
{
/* code */
vUsart3SendArray(&ucRecTempBuffer[1], 1);
vUsart3SendArray(&ucRecHumiBuffer[1], 1);
vUsart3SendArray(&ucRecTempData, 1);
vUsart3SendArray(&ucRecHumiData, 1);
}
vTaskDelay(1500);
vTaskDelay(1000);
}
}
void vTasksList(void)
{
/* <20><><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> */
taskENTER_CRITICAL();
// taskENTER_CRITICAL();
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣬲<EFBFBD><F1A3ACB2><EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ջ<EFBFBD><D5BB>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
xTaskCreate(
(TaskFunction_t ) vStateLedTask,
@@ -140,27 +136,26 @@ void vTasksList(void)
xTaskCreate(
(TaskFunction_t ) vDht11Task,
(char * ) "TaskName_DHT11",
(configSTACK_DEPTH_TYPE) 1024,
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xDht11TaskHdlr);
xTaskCreate(
(TaskFunction_t ) vLoRaToGatePktTask,
(char * ) "TaskName_LoRaSendToGateway",
(configSTACK_DEPTH_TYPE) 1024,
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xLoRaToGateTskHdlr);
xTaskCreate(
(TaskFunction_t ) vLoRaRecMsgTask,
(char * ) "TaskName_LoRaReceivedMessage",
(configSTACK_DEPTH_TYPE) 1024,
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xLoRaRecMsgTskHdlr);
/* <20>˳<EFBFBD><CBB3>ٽ<EFBFBD><D9BD><EFBFBD> */
taskEXIT_CRITICAL();
// taskEXIT_CRITICAL();
}
void vMainQueuesList(void)
@@ -170,10 +165,10 @@ void vMainQueuesList(void)
* ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ƕ<EFBFBD><C7B6>о<EFBFBD><D0BE><EFBFBD><EFBFBD>Ľṹ<C4BD><EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B6A8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> */
xQueueTempHdlr = xQueueCreate(
(UBaseType_t) 5,
(UBaseType_t) sizeof(uint8_t *));
(UBaseType_t) sizeof(uint8_t));
xQueueHumiHdlr = xQueueCreate(
(UBaseType_t) 5,
(UBaseType_t) sizeof(uint8_t *));
(UBaseType_t) sizeof(uint8_t));
xQueueUsart3ReHdlr = xQueueCreate(
(UBaseType_t) 128,
(UBaseType_t) sizeof(uint8_t *));