11.6_1:解决了中断消息队列无法正常接收串口中断的bug,初步实现中断消息队列。

This commit is contained in:
2025-11-06 21:25:30 +08:00
parent 5f408b4ece
commit 3e3e96e017
7 changed files with 104 additions and 71 deletions

View File

@@ -45,7 +45,7 @@ void vLoRaToGateSenIdPkt(uint8_t ucSensorId)
} }
} }
void vLoRToGateExeIdPkt(uint8_t ucExeId) void vLoRaToGateExeIdPkt(uint8_t ucExeId)
{ {
if (ucExeId == xLoRaExecutorID.ucIdLed) if (ucExeId == xLoRaExecutorID.ucIdLed)
{ {
@@ -69,3 +69,8 @@ void vLoRToGateExeIdPkt(uint8_t ucExeId)
vUsart3SendArray((uint8_t *)&xLoRaExecutorID.ucIdServo, 1); vUsart3SendArray((uint8_t *)&xLoRaExecutorID.ucIdServo, 1);
} }
} }
void vLoRaReceivedMesg(void)
{
}

View File

@@ -34,6 +34,8 @@
#define LORA_EXECUTOR_STATUS_ON 0x01 #define LORA_EXECUTOR_STATUS_ON 0x01
#define LORA_EXECUTOR_STATUS_OFF 0x00 #define LORA_EXECUTOR_STATUS_OFF 0x00
/* LoRa<52><61>ֲ<EFBFBD><D6B2> */
typedef struct { typedef struct {
uint8_t ucLoRaGateAddrHigh; uint8_t ucLoRaGateAddrHigh;
uint8_t ucLoRaGateAddrLow; uint8_t ucLoRaGateAddrLow;
@@ -126,6 +128,7 @@ static LoRaUsart3Rx_t xLoRaUsart3Rx = { 0 };
void vLoRaConnectionPkt(void); void vLoRaConnectionPkt(void);
void vLoRaToGateIdPkt(uint8_t ucNodeId); void vLoRaToGateIdPkt(uint8_t ucNodeId);
void vLoRaToGateSenIdPkt(uint8_t ucSensorId); void vLoRaToGateSenIdPkt(uint8_t ucSensorId);
void vLoRToGateExeIdPkt(uint8_t ucExecutorId); void vLoRaToGateExeIdPkt(uint8_t ucExecutorId);
void vLoRaReceivedMesg(void);
#endif #endif

File diff suppressed because one or more lines are too long

View File

@@ -153,12 +153,7 @@
<Ww> <Ww>
<count>0</count> <count>0</count>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>ucRxBuffer</ItemText> <ItemText>xReturn</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>ulRxData</ItemText>
</Ww> </Ww>
</WatchWindow1> </WatchWindow1>
<Tracepoint> <Tracepoint>

View File

@@ -128,12 +128,11 @@ void USART3_IRQHandler(void)
if (USART_GetITStatus(USART3, USART_IT_RXNE) == SET) if (USART_GetITStatus(USART3, USART_IT_RXNE) == SET)
{ {
/* code */ /* code */
uint32_t ulRxData = USART_ReceiveData(USART3); BaseType_t xHigherPriorityTaskWoken = pdFALSE;
while (ulRxData != 0xFF) uint8_t ulRxData = (uint8_t)USART_ReceiveData(USART3);
{ xQueueSendFromISR(xQueueUsart3ReHdlr, &ulRxData, &xHigherPriorityTaskWoken);
/* code */
ucRxBuffer[ucIndex++] = ulRxData;
}
USART_ClearITPendingBit(USART3, USART_IT_RXNE); USART_ClearITPendingBit(USART3, USART_IT_RXNE);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD> */
portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
} }
} }

View File

@@ -22,6 +22,8 @@ typedef struct
uint8_t ucIndex; uint8_t ucIndex;
}Usart3RecBuffer_t; }Usart3RecBuffer_t;
extern QueueHandle_t xQueueUsart3ReHdlr;
void vUsart3Init(uint32_t ulUsart3Baudrate); void vUsart3Init(uint32_t ulUsart3Baudrate);
void vUsart3SendByte(uint8_t ucByte); void vUsart3SendByte(uint8_t ucByte);
void vUsart3SendArray(uint8_t *pucArray, uint16_t usLength); void vUsart3SendArray(uint8_t *pucArray, uint16_t usLength);

View File

@@ -14,10 +14,12 @@ TaskHandle_t xStateLedTaskHdlr;
TaskHandle_t xDht11TaskHdlr; TaskHandle_t xDht11TaskHdlr;
TaskHandle_t xRelayCtrlTaskHdlr; TaskHandle_t xRelayCtrlTaskHdlr;
TaskHandle_t xLoRaToGateTskHdlr; TaskHandle_t xLoRaToGateTskHdlr;
TaskHandle_t xLoRaRecMsgTskHdlr;
QueueHandle_t xQueueUsart3ReHdlr;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD> */ /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD> */
QueueHandle_t xTempQueueHdlr; QueueHandle_t xQueueTempHdlr;
QueueHandle_t xHumiQueueHdlr; QueueHandle_t xQueueHumiHdlr;
/* <20><>˸LED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ָ<EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>NULL<4C><4C> */ /* <20><>˸LED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ָ<EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>NULL<4C><4C> */
void vStateLedTask(void *pvParameters) void vStateLedTask(void *pvParameters)
@@ -64,8 +66,8 @@ void vDht11Task(void *pvParameters)
vTaskDelay(50); 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> */ /* д<><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(xTempQueueHdlr, ucSendTempBuffer, 0); xQueueSend(xQueueTempHdlr, ucSendTempBuffer, 0);
xQueueSend(xHumiQueueHdlr, ucSendHumiBuffer, 0); xQueueSend(xQueueHumiHdlr, ucSendHumiBuffer, 0);
} else } else
{ {
// vUsart3Printf("DHT11 Read Data Failed\r\n."); // vUsart3Printf("DHT11 Read Data Failed\r\n.");
@@ -80,9 +82,18 @@ void vDht11Task(void *pvParameters)
} }
} }
void vRelayControlTask(void *pvParameters) void vLoRaRecMsgTask(void *pvParameters)
{ {
uint8_t pucRecIsrBuffer[128] = {0};
while (1)
{
/* code */
if (xQueueReceive(xQueueUsart3ReHdlr, pucRecIsrBuffer, 0) == pdTRUE)
{
/* code */
vUsart3SendArray(pucRecIsrBuffer, 1);
}
}
} }
void vLoRaToGatePktTask(void *pvParameters) void vLoRaToGatePktTask(void *pvParameters)
@@ -97,8 +108,8 @@ 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>Ӧ /* <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> * һ<><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(xTempQueueHdlr, ucRecTempBuffer, 0); xQueueTempRetval = xQueueReceive(xQueueTempHdlr, ucRecTempBuffer, 0);
xQueueHumiRetval = xQueueReceive(xHumiQueueHdlr, ucRecHumiBuffer, 0); xQueueHumiRetval = xQueueReceive(xQueueHumiHdlr, ucRecHumiBuffer, 0);
/* <20><><EFBFBD><EFBFBD> */ /* <20><><EFBFBD><EFBFBD> */
vLoRaConnectionPkt(); vLoRaConnectionPkt();
vLoRaToGateIdPkt(xLoRaNode1Config.ucLoRaNode1Identifier); vLoRaToGateIdPkt(xLoRaNode1Config.ucLoRaNode1Identifier);
@@ -110,8 +121,6 @@ void vLoRaToGatePktTask(void *pvParameters)
vUsart3SendArray(&ucRecTempBuffer[1], 1); vUsart3SendArray(&ucRecTempBuffer[1], 1);
vUsart3SendArray(&ucRecHumiBuffer[1], 1); vUsart3SendArray(&ucRecHumiBuffer[1], 1);
} }
// uint32_t value = (ucQueueRecHumiBfData[1] << 24) | (ucQueueRecTempBfData[1] << 16) |
// (xLoRaSensorID.ucIdDht11 << 8) | (xLoRaNode1Config.ucLoRaNode1Identifier);
vTaskDelay(1500); vTaskDelay(1500);
} }
} }
@@ -123,25 +132,33 @@ void vTasksList(void)
/* <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> */ /* <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( xTaskCreate(
(TaskFunction_t ) vStateLedTask, (TaskFunction_t ) vStateLedTask,
(char * ) "StateLedTask", (char * ) "TaskName_StateLed",
(configSTACK_DEPTH_TYPE) 512, (configSTACK_DEPTH_TYPE) 512,
(void * ) NULL, (void * ) NULL,
(UBaseType_t ) 2, (UBaseType_t ) 2,
(TaskHandle_t * ) &xStateLedTaskHdlr); (TaskHandle_t * ) &xStateLedTaskHdlr);
xTaskCreate( xTaskCreate(
(TaskFunction_t ) vDht11Task, (TaskFunction_t ) vDht11Task,
(char * ) "DHT11Task", (char * ) "TaskName_DHT11",
(configSTACK_DEPTH_TYPE) 1024, (configSTACK_DEPTH_TYPE) 1024,
(void * ) NULL, (void * ) NULL,
(UBaseType_t ) 2, (UBaseType_t ) 2,
(TaskHandle_t * ) &xDht11TaskHdlr); (TaskHandle_t * ) &xDht11TaskHdlr);
xTaskCreate( xTaskCreate(
(TaskFunction_t ) vLoRaToGatePktTask, (TaskFunction_t ) vLoRaToGatePktTask,
(char * ) "LoRaToGatePktTask", (char * ) "TaskName_LoRaSendToGateway",
(configSTACK_DEPTH_TYPE) 1024, (configSTACK_DEPTH_TYPE) 1024,
(void * ) NULL, (void * ) NULL,
(UBaseType_t ) 2, (UBaseType_t ) 2,
(TaskHandle_t * ) &xLoRaToGateTskHdlr); (TaskHandle_t * ) &xLoRaToGateTskHdlr);
xTaskCreate(
(TaskFunction_t ) vLoRaRecMsgTask,
(char * ) "TaskName_LoRaReceivedMessage",
(configSTACK_DEPTH_TYPE) 1024,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xLoRaRecMsgTskHdlr);
/* <20>˳<EFBFBD><CBB3>ٽ<EFBFBD><D9BD><EFBFBD> */ /* <20>˳<EFBFBD><CBB3>ٽ<EFBFBD><D9BD><EFBFBD> */
taskEXIT_CRITICAL(); taskEXIT_CRITICAL();
} }
@@ -151,13 +168,16 @@ void vMainQueuesList(void)
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6>еij<D0B5><C4B3><EFBFBD><><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4>Ŷ<EFBFBD><C5B6>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD>ݣ<EFBFBD> /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6>еij<D0B5><C4B3><EFBFBD><><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4>Ŷ<EFBFBD><C5B6>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD>ݣ<EFBFBD>
* <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݵĴ<DDB5>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λΪ<CEBB>ֽڣ<D6BD><DAA3><EFBFBD>stm32<33><32>uint8_tָ<74><D6B8><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>4<EFBFBD>ֽڡ<D6BD> * <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݵĴ<DDB5>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λΪ<CEBB>ֽڣ<D6BD><DAA3><EFBFBD>stm32<33><32>uint8_tָ<74><D6B8><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>4<EFBFBD>ֽڡ<D6BD>
* ԭ<><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> */ * ԭ<><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> */
xTempQueueHdlr = xQueueCreate( xQueueTempHdlr = xQueueCreate(
(UBaseType_t) 5, (UBaseType_t) 5,
(UBaseType_t) sizeof(uint8_t *)); (UBaseType_t) sizeof(uint8_t *));
xHumiQueueHdlr = xQueueCreate( xQueueHumiHdlr = xQueueCreate(
(UBaseType_t) 5, (UBaseType_t) 5,
(UBaseType_t) sizeof(uint8_t *)); (UBaseType_t) sizeof(uint8_t *));
if (xTempQueueHdlr == NULL || xHumiQueueHdlr == NULL) xQueueUsart3ReHdlr = xQueueCreate(
(UBaseType_t) 128,
(UBaseType_t) sizeof(uint8_t *));
if (xQueueTempHdlr == NULL || xQueueHumiHdlr == NULL || xQueueUsart3ReHdlr == NULL)
{ {
/* code */ /* code */
vUsart3Printf("Queue Init Failed.\r\n"); vUsart3Printf("Queue Init Failed.\r\n");