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

@@ -5,7 +5,7 @@ void vDht11Rst(void)
{
vDht11Mode(OUT); //SET OUTPUT
DHT11_Low; //<2F><><EFBFBD><EFBFBD>DQ
vTaskDelay(20); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>18~30ms
vDelayMs(20); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>18~30ms
DHT11_High; //DQ=1
vDelayUs(13); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10~35us
}

View File

@@ -1,10 +1,8 @@
#ifndef __DHT11_H
#define __DHT11_H
#ifndef __DHT11_H__
#define __DHT11_H__
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "FreeRTOS.h"
#include "task.h"
/* DHT11<31><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define DHT11_GPIO_CLK RCC_APB2Periph_GPIOB

View File

@@ -4,6 +4,11 @@
#include "stm32f10x.h" // Device header
#define LED_PC13_WORK_MODE LED_PC13_LIGHT_MODE
#define LED_PC13_STM32_STATE_MODE 0
#define LED_PC13_LIGHT_MODE 1
/* PC13LED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define LED_PC13_GPIO_CLOCK RCC_APB2Periph_GPIOC
#define LED_PC13_GPIO_PORT GPIOC

View File

@@ -1,5 +1,11 @@
#include "LoRa.h"
/**
* @brief LoRa<52><61><EFBFBD>ͽڵ<CDBD>ID<49><44><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note LoRa<52>ڶ<EFBFBD><DAB6><EFBFBD>ģʽ<C4A3><CABD>ִ<EFBFBD>нڵ<D0BD><DAB5><EFBFBD>ͨ<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ucNodeId <20>ڵ<EFBFBD>ID<49><44><EFBFBD><EFBFBD>Node1<65><31>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>D1<44>ȵȡ<C8B5>
* @retval None
*/
void vLoRaConnectionPkt(uint8_t ucNodeId)
{
if (ucNodeId == xLoRaNode1Config.ucLoRaNode1Identifier)
@@ -20,9 +26,9 @@ void vLoRaConnectionPkt(uint8_t ucNodeId)
}
/**
* @brief LoRa<52><61><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>hex<EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D2B2>LoRa<52>ڶ<EFBFBD><DAB6><EFBFBD>ģʽ<C4A3><CABD>ִ<EFBFBD>нڵ<D0BD><DAB5><EFBFBD>ͨ<EFBFBD>ŵ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note hex<EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><EFBFBD>ĸ<EFBFBD>ʽΪ<EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param None
* @brief LoRa<52><61><EFBFBD>ͽڵ<EFBFBD>ID<EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽڵ<EFBFBD>ID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ʲô<EFBFBD>ڵ㡣
* @param ucNodeId <20>ڵ<EFBFBD>ID<49><44><EFBFBD><EFBFBD>Node1<65><31>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>D1<44>ȵȡ<C8B5>
* @retval None
*/
void vLoRaToGateIdPkt(uint8_t ucNodeId)
@@ -38,6 +44,12 @@ void vLoRaToGateIdPkt(uint8_t ucNodeId)
}
}
/**
* @brief LoRa<52><61><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>ID<49><44><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ucSensorId <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44><EFBFBD><EFBFBD>DHT11<31><31>ʪ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>ucIdDht11<31>ȵȡ<C8B5>
* @retval None
*/
void vLoRaToGateSenIdPkt(uint8_t ucSensorId)
{
if (ucSensorId == xLoRaSensorID.ucIdDht11)
@@ -59,6 +71,12 @@ void vLoRaToGateSenIdPkt(uint8_t ucSensorId)
}
}
/**
* @brief LoRa<52><61><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>ID<49><44><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ʲôִ<C3B4><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ucExeId ִ<><D6B4><EFBFBD><EFBFBD>ID<49><44><EFBFBD><EFBFBD>LED<45>ƣ<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>ucIdLed<65>ȵȡ<C8B5>
* @retval None
*/
void vLoRaToGateExeIdPkt(uint8_t ucExeId)
{
if (ucExeId == xLoRaExecutorID.ucIdLed)
@@ -84,6 +102,12 @@ void vLoRaToGateExeIdPkt(uint8_t ucExeId)
}
}
/**
* @brief LoRa<52>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ͨ<><CDA8><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>н<EFBFBD><D0BD><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʲôָ<C3B4>
* @param *pucData <20><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
* @retval eLoRaMsgRecStatus ö<>٣<EFBFBD><D9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>ID<49>Ϳ<EFBFBD><CDBF><EFBFBD>ָ<EFBFBD>
*/
eLoRaMsgRecStatus xLoRaMessageReceived(uint8_t *pucData)
{
switch (*pucData)
@@ -121,13 +145,21 @@ eLoRaMsgRecStatus xLoRaMessageReceived(uint8_t *pucData)
}
}
eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeId, uint8_t ucDataRecExeSta)
/**
* @brief LoRa<52>ڵ㴦<DAB5><E3B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ͨ<><CDA8>LoRa<52>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʲôָ<C3B4><EFBFBD><EEA3AC>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC>ٴ<EFBFBD><D9B4><EFBFBD>Ӷȡ<D3B6><C8A1><EFBFBD>API<50><49>ֱ<EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>
* @param ucDataRecNodeId Ҫ<>жϵĽڵ<C4BD>ID<49><44>
* @param ucDataRecExeId Ҫ<>жϵ<D0B6>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>ID<49><44>
* @param ucDataRecExeStatus Ҫ<>жϵĴ<CFB5><C4B4><EFBFBD><EFBFBD><EFBFBD>ID<49><44>
* @retval eLoRaMsgRecStatus ö<>٣<EFBFBD><D9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>ID<49>Ϳ<EFBFBD><CDBF><EFBFBD>ָ<EFBFBD>
*/
eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeId, uint8_t ucDataRecExeStatus)
{
switch (xLoRaMessageReceived(&ucDataRecNodeId))
{
case statusNode1:
/* code */
while (xLoRaMessageReceived(&ucDataRecExeSta) == statusExeOn)
while (xLoRaMessageReceived(&ucDataRecExeStatus) == statusExeOn)
{
/* code */
if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeLed)
@@ -144,7 +176,7 @@ eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeI
return statusHumidifierOn;
}
}
while (xLoRaMessageReceived(&ucDataRecExeSta) == statusExeOff)
while (xLoRaMessageReceived(&ucDataRecExeStatus) == statusExeOff)
{
/* code */
if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeLed)
@@ -163,7 +195,7 @@ eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeI
}
case statusNode2:
while (xLoRaMessageReceived(&ucDataRecExeSta) == statusExeOn)
while (xLoRaMessageReceived(&ucDataRecExeStatus) == statusExeOn)
{
/* code */
if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeBuzzer)
@@ -176,7 +208,7 @@ eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeI
return statusServoOn;
}
}
while (xLoRaMessageReceived(&ucDataRecExeSta) == statusExeOff)
while (xLoRaMessageReceived(&ucDataRecExeStatus) == statusExeOff)
{
/* code */
if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeBuzzer)

View File

@@ -1,12 +1,9 @@
#ifndef __LORA_H__
#define __LORA_H__
#include "USART3.h"
// #define LORA_MODE
/* LoRa<52>ľ<EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD> */
#define LORA_MODE_INIT 1
#define LORA_IS_GATEWAY_NODE 0
#define LORA_GPIO_PIN_TX GPIO_Pin_10
#define LORA_GPIO_PIN_RX GPIO_Pin_11
#define LORA_GPIO_PIN_ATK_AUX GPIO_Pin_4 //PA4
@@ -34,6 +31,8 @@
#define LORA_EXECUTOR_COMMAND_ON 0x01
#define LORA_EXECUTOR_COMMAND_OFF 0x00
#include "USART3.h"
/* LoRa<52><61>ֲ<EFBFBD><D6B2> */
typedef enum {
@@ -141,10 +140,14 @@ static LoRaExecutorCmd_t xLoRaExecutorCommand = {
};
void vLoRaConnectionPkt(uint8_t ucNodeId);
void vLoRaToGateIdPkt(uint8_t ucNodeId);
void vLoRaToGateSenIdPkt(uint8_t ucSensorId);
void vLoRaToGateExeIdPkt(uint8_t ucExecutorId);
eLoRaMsgRecStatus xLoRaMessageReceived(uint8_t *pucData);
eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeId, uint8_t ucDataRecExeSta);
#if(LORA_IS_GATEWAY_NODE == 1)
#elif(LORA_IS_GATEWAY_NODE == 0)
void vLoRaToGateIdPkt(uint8_t ucNodeId);
void vLoRaToGateSenIdPkt(uint8_t ucSensorId);
void vLoRaToGateExeIdPkt(uint8_t ucExecutorId);
eLoRaMsgRecStatus xLoRaMessageReceived(uint8_t *pucData);
eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeId, uint8_t ucDataRecExeStatus);
#endif
#endif