11.22:完善注释;提高代码的移植性;完善串口程序。
This commit is contained in:
3
STM32/Environment_Node/.vscode/settings.json
vendored
3
STM32/Environment_Node/.vscode/settings.json
vendored
@@ -2,6 +2,7 @@
|
||||
"files.associations": {
|
||||
"stm32f10x_crc.h": "c",
|
||||
"stm32f10x.h": "c",
|
||||
"semaphore.h": "c"
|
||||
"semaphore.h": "c",
|
||||
"freertos.h": "c"
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user