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

@@ -2,6 +2,7 @@
"files.associations": {
"stm32f10x_crc.h": "c",
"stm32f10x.h": "c",
"semaphore.h": "c"
"semaphore.h": "c",
"freertos.h": "c"
}
}

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

View File

@@ -110,8 +110,8 @@
<MDIClientArea>
<RegID>0</RegID>
<MDITabState>
<Len>1223</Len>
<Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000000000000100000063433A5C55736572735C4578706C6F726174696F6E5C4465736B746F705C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C557365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF67433A5C55736572735C4578706C6F726174696F6E5C4465736B746F705C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C53797374656D5C5553415254332E6800000000085553415254332E6800000000FFDC7800FFFFFFFF67433A5C55736572735C4578706C6F726174696F6E5C4465736B746F705C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C53797374656D5C5553415254332E6300000000085553415254332E6300000000BECEA100FFFFFFFF66433A5C55736572735C4578706C6F726174696F6E5C4465736B746F705C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C447269766572735C4C6F52612E6800000000064C6F52612E6800000000F0A0A100FFFFFFFF66433A5C55736572735C4578706C6F726174696F6E5C4465736B746F705C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C447269766572735C4C6F52612E6300000000064C6F52612E6300000000BCA8E100FFFFFFFF7A433A5C55736572735C4578706C6F726174696F6E5C4465736B746F705C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C53797374656D46696C65735C737461727475705F73746D3332663130785F6D642E730000000016737461727475705F73746D3332663130785F6D642E73000000009CC1B600FFFFFFFF67433A5C55736572735C4578706C6F726174696F6E5C4465736B746F705C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C447269766572735C52656C61792E63000000000752656C61792E6300000000F7B88600FFFFFFFF67433A5C55736572735C4578706C6F726174696F6E5C4465736B746F705C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C447269766572735C52656C61792E68000000000752656C61792E6800000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000030030000</Data>
<Len>1215</Len>
<Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000000000000100000062453A5C446174615C50726F6A6563745C496F5450726F6A656374735C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C557365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF66453A5C446174615C50726F6A6563745C496F5450726F6A656374735C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C53797374656D5C5553415254332E6800000000085553415254332E6800000000FFDC7800FFFFFFFF66453A5C446174615C50726F6A6563745C496F5450726F6A656374735C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C53797374656D5C5553415254332E6300000000085553415254332E6300000000BECEA100FFFFFFFF65453A5C446174615C50726F6A6563745C496F5450726F6A656374735C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C447269766572735C4C6F52612E6800000000064C6F52612E6800000000F0A0A100FFFFFFFF65453A5C446174615C50726F6A6563745C496F5450726F6A656374735C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C447269766572735C4C6F52612E6300000000064C6F52612E6300000000BCA8E100FFFFFFFF79453A5C446174615C50726F6A6563745C496F5450726F6A656374735C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C53797374656D46696C65735C737461727475705F73746D3332663130785F6D642E730000000016737461727475705F73746D3332663130785F6D642E73000000009CC1B600FFFFFFFF66453A5C446174615C50726F6A6563745C496F5450726F6A656374735C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C447269766572735C52656C61792E63000000000752656C61792E6300000000F7B88600FFFFFFFF66453A5C446174615C50726F6A6563745C496F5450726F6A656374735C4672656552544F535F4C6F52615F456E7669726F6E6D656E745F417373697374616E745C53544D33325C456E7669726F6E6D656E745F4E6F64655C447269766572735C52656C61792E68000000000752656C61792E6800000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000030030000</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
@@ -174,7 +174,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000003E01000075020000</Data>
<Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -274,7 +274,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -314,7 +314,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -374,7 +374,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>2200000039000000EA020000C7000000</Data>
<Data>BE000000D50000008603000063010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -454,7 +454,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000003E01000075020000</Data>
<Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -474,7 +474,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000003E01000075020000</Data>
<Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -526,7 +526,7 @@
<IsActivated>0</IsActivated>
<MRUWidth>32767</MRUWidth>
<PinState>0</PinState>
<RecentFrameAlignment>4096</RecentFrameAlignment>
<RecentFrameAlignment>32768</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
@@ -554,7 +554,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>2200000039000000EA020000C7000000</Data>
<Data>A4000000BB0000006C03000049010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -614,7 +614,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -694,7 +694,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -714,7 +714,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>2200000039000000EA020000C7000000</Data>
<Data>A4000000BB0000006C03000049010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -734,7 +734,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -754,7 +754,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -774,7 +774,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -874,7 +874,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -934,7 +934,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -954,7 +954,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -974,7 +974,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -994,7 +994,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1014,7 +1014,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1034,7 +1034,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1094,7 +1094,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1154,7 +1154,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000003E01000075020000</Data>
<Data>BE000000D5000000DA01000011030000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1186,7 +1186,7 @@
<IsActivated>0</IsActivated>
<MRUWidth>32767</MRUWidth>
<PinState>0</PinState>
<RecentFrameAlignment>4096</RecentFrameAlignment>
<RecentFrameAlignment>32768</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
@@ -1266,7 +1266,7 @@
<IsActivated>0</IsActivated>
<MRUWidth>32767</MRUWidth>
<PinState>0</PinState>
<RecentFrameAlignment>4096</RecentFrameAlignment>
<RecentFrameAlignment>32768</RecentFrameAlignment>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
@@ -1314,7 +1314,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1334,7 +1334,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1354,7 +1354,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1374,7 +1374,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1394,7 +1394,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1454,7 +1454,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1474,7 +1474,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1494,7 +1494,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1514,7 +1514,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1554,7 +1554,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1634,7 +1634,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1654,7 +1654,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1674,7 +1674,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1694,7 +1694,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>BE000000D5000000AE0100009E010000</Data>
</RectRecentFloat>
</Window>
<Window>
@@ -1794,7 +1794,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>22000000390000001201000002010000</Data>
<Data>A4000000BB0000009401000084010000</Data>
</RectRecentFloat>
</Window>
<DockMan>
@@ -1822,7 +1822,7 @@
<Name>Build</Name>
<Buttons>
<Len>976</Len>
<Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
<Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
</Buttons>
<OriginalItems>
<Len>583</Len>
@@ -3606,9 +3606,9 @@
<ActiveTab>0</ActiveTab>
<Doc>
<Name>.\User\main.c</Name>
<ColumnNumber>9</ColumnNumber>
<TopLine>43</TopLine>
<CurrentLine>57</CurrentLine>
<ColumnNumber>13</ColumnNumber>
<TopLine>112</TopLine>
<CurrentLine>203</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
@@ -3624,9 +3624,9 @@
</Doc>
<Doc>
<Name>.\System\USART3.c</Name>
<ColumnNumber>33</ColumnNumber>
<TopLine>44</TopLine>
<CurrentLine>58</CurrentLine>
<ColumnNumber>24</ColumnNumber>
<TopLine>1</TopLine>
<CurrentLine>106</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
@@ -3634,7 +3634,7 @@
<Doc>
<Name>.\Drivers\LoRa.h</Name>
<ColumnNumber>6</ColumnNumber>
<TopLine>25</TopLine>
<TopLine>3</TopLine>
<CurrentLine>4</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
@@ -3642,9 +3642,9 @@
</Doc>
<Doc>
<Name>.\Drivers\LoRa.c</Name>
<ColumnNumber>36</ColumnNumber>
<ColumnNumber>18</ColumnNumber>
<TopLine>1</TopLine>
<CurrentLine>46</CurrentLine>
<CurrentLine>18</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>

View File

@@ -1,64 +0,0 @@
#include "SysTick.h"
#if SYSTEM == SYSTEM_NONE
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>ӳٺ<D3B3><D9BA><EFBFBD>
//SYSTICK<43><4B>ʱ<EFBFBD>ӹ̶<D3B9>ΪAHBʱ<42>ӵ<EFBFBD>1/8
//SYSCLK:ϵͳʱ<CDB3><CAB1>Ƶ<EFBFBD><C6B5>
void vSysTickInit(uint8_t ucSYSCLK)
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
xUcFacInit.ucFacUs=ucSYSCLK/8;
xUcFacInit.usFacMs=(uint16_t)xUcFacInit.ucFacUs*1000;
}
//<2F><>ʱnus
//nusΪҪ<CEAA><D2AA>ʱ<EFBFBD><CAB1>us<75><73>.
void vDelayUs(uint32_t ulNus)
{
uint32_t ulTemp;
SysTick->LOAD=ulNus*xUcFacInit.ucFacUs; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SysTick->VAL=0x00; //<2F><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
do
{
ulTemp=SysTick->CTRL;
} while((ulTemp&0x01)&&!(ulTemp&(1<<16))); //<2F>ȴ<EFBFBD>ʱ<EFBFBD><EFBFBD><E4B5BD>
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
SysTick->VAL =0X00; //<2F><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
}
//<2F><>ʱnms
//ע<><D7A2>nms<6D>ķ<EFBFBD>Χ
//SysTick->LOADΪ24λ<34>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱΪ:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK<4C><4B>λΪHz,nms<6D><73>λΪms
//<2F><>72M<32><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,nms<=1864
/**
* @brief <20><><EFBFBD><EFBFBD><EBBCB6>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
* @note <20><><EFBFBD><EFBFBD>Systick<63><6B>ʱ<EFBFBD><CAB1>Ϊ24λ<34><CEBB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ֵΪ0xFFFFFF<46><46>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>16777215<31><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>0xFFFFFF<46><46><EFBFBD><EFBFBD>ʵ<EFBFBD>ʼ<EFBFBD><CABC>ص<EFBFBD>ֵ<EFBFBD><D6B5>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD>
* <20><><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD>1.864s<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱΪxms-16777215<31>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>
* @note <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʱ<EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳɶ<D6B3><C9B6><EFBFBD>1000ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param None
* @retval None
*/
void vDelayMs(uint16_t usNms)
{
uint32_t ulTemp;
while (usNms)
{
uint16_t current = (usNms > 1000) ? 1000 : usNms;
usNms -= current;
SysTick->LOAD = (uint32_t)current * xUcFacInit.usFacMs;
SysTick->VAL = 0x00;
SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
do
{
ulTemp = SysTick->CTRL;
} while ((ulTemp & 0x01) && !(ulTemp & (1 << 16)));
SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
SysTick->VAL = 0X00;
}
}
#endif

View File

@@ -1,28 +0,0 @@
#ifndef __SysTick_H__
#define __SysTick_H__
#include "stm32f10x.h" // Device header
#define SYSTEM SYSTEM_FREERTOS
#define SYSTEM_NONE 0
#define SYSTEM_FREERTOS 1
#define SYSTEM_UCOSII 2
#define SYSTEM_UCOSIII 3
#define SYSTEM_RT_THREAD 4
#define SYSTEM_AZURE_RTOS 5
typedef struct {
uint8_t ucFacUs;
int16_t usFacMs;
} UcFacInit_t;
static UcFacInit_t xUcFacInit = {
.ucFacUs = 0,
.usFacMs = 0
};
void vSysTickInit(uint8_t ucSYSCLK);
void vDelayUs(uint32_t ulNus);
void vDelayMs(uint16_t usNms);
#endif

View File

@@ -128,11 +128,15 @@ void USART3_IRQHandler(void)
if (USART_GetITStatus(USART3, USART_IT_RXNE) == SET)
{
/* code */
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
uint8_t ulRxData = (uint8_t)USART_ReceiveData(USART3);
xQueueSendFromISR(xQueueUsart3IrqHdlr, &ulRxData, &xHigherPriorityTaskWoken);
#if (USE_NONE_SYSTEM == 1)
#elif (USE_FREERTOS == 1)
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xQueueSendFromISR(xQueueUsart3IrqHdlr, &ulRxData, &xHigherPriorityTaskWoken);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD> */
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
#elif (USE_OSAL == 1)
#endif
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

@@ -1,21 +1,32 @@
#ifndef __USART3_H__
#define __USART3_H__
#include "stm32f10x.h" // Device header
#include "FreeRTOS.h"
#include "queue.h"
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#define USE_NONE_SYSTEM 0
#define USE_FREERTOS 1
#define USE_OSAL 0
#define vLoRaIrqHandler USART3_IRQHandler
#define USART3_GPIO_PIN_TX GPIO_Pin_10
#define USART3_GPIO_PIN_RX GPIO_Pin_11
#define USART3_GPIO_PIN_ATK_AUX GPIO_Pin_4 // PA4
#define USART3_GPIO_PIN_ATK_MD0 GPIO_Pin_3 // PB3
extern QueueHandle_t xQueueUsart3IrqHdlr;
#if (USE_NONE_SYSTEM == 1)
#elif (USE_FREERTOS == 1)
#include "FreeRTOS.h"
#include "queue.h"
#elif (USE_OSAL == 1)
#endif
#include "stm32f10x.h" // Device header
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#if (USE_NONE_SYSTEM == 1)
#elif (USE_FREERTOS == 1)
extern QueueHandle_t xQueueUsart3IrqHdlr;
#elif (USE_OSAL == 1)
#endif
void vUsart3Init(uint32_t ulUsart3Baudrate);
void vUsart3SendByte(uint8_t ucByte);

View File

@@ -108,21 +108,21 @@ void vTaskLoRaToGatePkt(void *pvParameters)
{
uint8_t ucRecTempData = 0, ucRecHumiData = 0;
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ճɹ<D5B3> */
BaseType_t xQueueTempRetval, xQueueHumiRetval;
BaseType_t xRetvalQueueTemp, xRetvalQueueHumi;
while (1)
{
/* code */
/* <20><><EFBFBD>ն<EFBFBD><D5B6>У<EFBFBD><D0A3><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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, &ucRecTempData, pdMS_TO_TICKS(10));
xQueueHumiRetval = xQueueReceive(xQueueHumiHdlr, &ucRecHumiData, pdMS_TO_TICKS(10));
xRetvalQueueTemp = xQueueReceive(xQueueTempHdlr, &ucRecTempData, pdMS_TO_TICKS(10));
xRetvalQueueHumi = xQueueReceive(xQueueHumiHdlr, &ucRecHumiData, pdMS_TO_TICKS(10));
/* <20><><EFBFBD><EFBFBD> */
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)
if (xRetvalQueueTemp == pdTRUE && xRetvalQueueHumi == pdTRUE)
{
/* code */
vUsart3SendArray(&ucRecTempData, 1);
@@ -179,49 +179,60 @@ void vTaskLoRaMsgRec(void *pvParameters)
void vCreateTasksList(void)
{
#if defined __LED_H__
#if LED_PC13_WORK_MODE == LED_PC13_STM32_STATE_MODE
/* <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 ) vTaskStateLed,
// (char * ) "TaskName_StateLed",
// (configSTACK_DEPTH_TYPE) 256,
// (void * ) NULL,
// (UBaseType_t ) 2,
// (TaskHandle_t * ) &xTaskStateLedHdlr);
xTaskCreate(
(TaskFunction_t ) vTaskLedControl,
(char * ) "TaskName_LedControl",
(configSTACK_DEPTH_TYPE) 256,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskLedCtrlHdlr);
xTaskCreate(
(TaskFunction_t ) vTaskFanControl,
(char * ) "TaskName_FanControl",
(configSTACK_DEPTH_TYPE) 256,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskFanCtrlHdlr);
xTaskCreate(
(TaskFunction_t ) vTaskDht11,
(char * ) "TaskName_DHT11",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskDht11Hdlr);
xTaskCreate(
(TaskFunction_t ) vTaskLoRaToGatePkt,
(char * ) "TaskName_LoRaSendToGateway",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskLoRaToGateHdlr);
xTaskCreate(
(TaskFunction_t ) vTaskLoRaMsgRec,
(char * ) "TaskName_LoRaReceivedMessage",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskLoRaMsgRecHdlr);
xTaskCreate(
(TaskFunction_t ) vTaskStateLed,
(char * ) "TaskName_StateLed",
(configSTACK_DEPTH_TYPE) 256,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskStateLedHdlr);
#else
xTaskCreate(
(TaskFunction_t ) vTaskLedControl,
(char * ) "TaskName_LedControl",
(configSTACK_DEPTH_TYPE) 256,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskLedCtrlHdlr);
#endif
#endif
#if defined __RELAY_H__
xTaskCreate(
(TaskFunction_t ) vTaskFanControl,
(char * ) "TaskName_FanControl",
(configSTACK_DEPTH_TYPE) 256,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskFanCtrlHdlr);
#endif
#if defined __DHT11_H__
xTaskCreate(
(TaskFunction_t ) vTaskDht11,
(char * ) "TaskName_DHT11",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskDht11Hdlr);
#endif
#if defined __LORA_H__
xTaskCreate(
(TaskFunction_t ) vTaskLoRaToGatePkt,
(char * ) "TaskName_LoRaSendToGateway",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskLoRaToGateHdlr);
xTaskCreate(
(TaskFunction_t ) vTaskLoRaMsgRec,
(char * ) "TaskName_LoRaReceivedMessage",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xTaskLoRaMsgRecHdlr);
#endif
}
void vCreateQueuesList(void)
@@ -249,8 +260,8 @@ void vCreateSemaphoresList(void)
{
xSemLedOnHdlr = xSemaphoreCreateBinary();
xSemLedOffHdlr = xSemaphoreCreateBinary();
xSemFanOnHdlr = xSemaphoreCreateBinary();
xSemFanOffHdlr = xSemaphoreCreateBinary();
xSemFanOnHdlr = xSemaphoreCreateBinary();
xSemFanOffHdlr = xSemaphoreCreateBinary();
}
int main(void)