1、sx127x.h增加了频率可调函数
2、删除了bsp.h的lora通道配置宏定义 3、删除了SGCP.h中MAC的组成参数定义,改为在main.c中进行定义,当使用bootloader时通过读取BootPara结构体参数获取本机MAC,否则将通过App程序自定义MAC 4、BootPara结构体参数增加
This commit is contained in:
+26
-4
@@ -103,7 +103,7 @@
|
|||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>12</nTsel>
|
<nTsel>6</nTsel>
|
||||||
<sDll></sDll>
|
<sDll></sDll>
|
||||||
<sDllPa></sDllPa>
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll></sDlgDll>
|
<sDlgDll></sDlgDll>
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
<tDlgDll></tDlgDll>
|
<tDlgDll></tDlgDll>
|
||||||
<tDlgPa></tDlgPa>
|
<tDlgPa></tDlgPa>
|
||||||
<tIfile></tIfile>
|
<tIfile></tIfile>
|
||||||
<pMon>BIN\CMSIS_AGDI.dll</pMon>
|
<pMon>Segger\JL2CM3.dll</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
<TargetDriverDllRegistry>
|
<TargetDriverDllRegistry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
@@ -153,7 +153,24 @@
|
|||||||
<Name></Name>
|
<Name></Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
</TargetDriverDllRegistry>
|
</TargetDriverDllRegistry>
|
||||||
<Breakpoint/>
|
<Breakpoint>
|
||||||
|
<Bp>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>43</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>41708</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>1</BreakIfRCount>
|
||||||
|
<Filename>..\source\src\Update.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression>\\hc32l17x\../source/src/Update.c\43</Expression>
|
||||||
|
</Bp>
|
||||||
|
</Breakpoint>
|
||||||
<WatchWindow1>
|
<WatchWindow1>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
@@ -250,6 +267,11 @@
|
|||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>App.LaserFlag,0x0A</ItemText>
|
<ItemText>App.LaserFlag,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>19</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>BLPara,0x10</ItemText>
|
||||||
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<MemoryWindow1>
|
<MemoryWindow1>
|
||||||
<Mm>
|
<Mm>
|
||||||
@@ -287,7 +309,7 @@
|
|||||||
<AscS3>0</AscS3>
|
<AscS3>0</AscS3>
|
||||||
<aSer3>0</aSer3>
|
<aSer3>0</aSer3>
|
||||||
<eProf>0</eProf>
|
<eProf>0</eProf>
|
||||||
<aLa>0</aLa>
|
<aLa>1</aLa>
|
||||||
<aPa1>0</aPa1>
|
<aPa1>0</aPa1>
|
||||||
<AscS4>0</AscS4>
|
<AscS4>0</AscS4>
|
||||||
<aSer4>0</aSer4>
|
<aSer4>0</aSer4>
|
||||||
|
|||||||
@@ -802,6 +802,7 @@ typedef struct {
|
|||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
void Sx1276LoRaLoopHandler(void);
|
void Sx1276LoRaLoopHandler(void);
|
||||||
void Sx1276LoRaInit(void (*RxCallBack)(uint8_t *rBuff, uint8_t rlen));
|
void Sx1276LoRaInit(void (*RxCallBack)(uint8_t *rBuff, uint8_t rlen));
|
||||||
|
void SX1276LoRaSetFreqHz(uint32_t dwFreqHz);
|
||||||
void Sx1276LoRaSendBuffer(uint8_t* pucBuff, uint8_t ucLen);
|
void Sx1276LoRaSendBuffer(uint8_t* pucBuff, uint8_t ucLen);
|
||||||
uint8_t SX1276LoRaReadChannel(void);
|
uint8_t SX1276LoRaReadChannel(void);
|
||||||
boolean_t SX1276LoRaWriteChannel(uint8_t Channel);
|
boolean_t SX1276LoRaWriteChannel(uint8_t Channel);
|
||||||
|
|||||||
+2
-8
@@ -4,14 +4,8 @@
|
|||||||
#define __SGCP_H
|
#define __SGCP_H
|
||||||
#include "bsp.h"
|
#include "bsp.h"
|
||||||
|
|
||||||
#define WORK_MODE 1 //工作模式选择,0、本机为查询模式,1、本机为上报模式(低功耗)
|
#define WORK_MODE 1//工作模式选择,0、本机为查询模式,1、本机为上报模式(低功耗)
|
||||||
#define SGCP_SELECT 1 //协议选择,0、本机为单个主设备接多个子设备,1、本机为单个主设备不接子设备,2、本机为单个子设备
|
#define SGCP_SELECT 1 //协议选择,0、本机为单个主设备接多个子设备,1、本机为单个主设备不接子设备,2、本机为单个子设备
|
||||||
#define LocalDataLen sizeof(SGCP.DevData.LaserTracing)//本机设备数据长度
|
|
||||||
#define LocalType LASER_TRACING //本机设备类型
|
|
||||||
#define CommWay LORA //本机通讯方式
|
|
||||||
#define DeviceSign MASTER //本机设备标志
|
|
||||||
#define AddNumber (0x000017 + DeviceSign)//本机地址编号,数字部分对应唯一地址编号
|
|
||||||
//09 00 01 00 00 00
|
|
||||||
|
|
||||||
typedef struct {//网关与主设备固定帧
|
typedef struct {//网关与主设备固定帧
|
||||||
uint8_t Header;
|
uint8_t Header;
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ typedef struct {
|
|||||||
uint32_t PackageCnt;
|
uint32_t PackageCnt;
|
||||||
uint32_t AppSize;
|
uint32_t AppSize;
|
||||||
uint32_t Crc32Check;
|
uint32_t Crc32Check;
|
||||||
|
uint32_t FirstRunFlag;//第一次运行
|
||||||
|
uint8_t DevMac[6];//设备MAC
|
||||||
|
uint32_t LoraFreq;//Lora频率
|
||||||
}BootPara_t, *BootPara;
|
}BootPara_t, *BootPara;
|
||||||
|
|
||||||
//主机下发升级请求载荷结构体
|
//主机下发升级请求载荷结构体
|
||||||
@@ -58,4 +61,5 @@ typedef struct {
|
|||||||
//输出接口
|
//输出接口
|
||||||
void Update(uint8_t *PayLoad);
|
void Update(uint8_t *PayLoad);
|
||||||
void UpdateInit(void);
|
void UpdateInit(void);
|
||||||
|
extern BootPara_t BLPara;
|
||||||
#endif
|
#endif
|
||||||
+1
-1
@@ -24,7 +24,7 @@
|
|||||||
#define USE_SPI1 0 //SPI1开关,0、关闭,1、启用
|
#define USE_SPI1 0 //SPI1开关,0、关闭,1、启用
|
||||||
|
|
||||||
#define USE_BOOTLOADER 1 //BOOTLOADER开关,0、关闭,1、启用
|
#define USE_BOOTLOADER 1 //BOOTLOADER开关,0、关闭,1、启用
|
||||||
#define USE_LORA_CH 1 //0为测试通道
|
#define USE_LORA_CH 0 //0为测试通道
|
||||||
|
|
||||||
//<<---------------------------- MCU -------------------------------->>
|
//<<---------------------------- MCU -------------------------------->>
|
||||||
//< UART0
|
//< UART0
|
||||||
|
|||||||
+7
-3
@@ -11,11 +11,15 @@ IROM1
|
|||||||
串口升级打开USE_BOOTLOADER和点s文件中的LDR R2, =new_vect_table ;升级时打开
|
串口升级打开USE_BOOTLOADER和点s文件中的LDR R2, =new_vect_table ;升级时打开
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
uint32_t LocalType; //本机设备类型
|
||||||
|
uint32_t CommWay; //本机通讯方式
|
||||||
|
uint32_t DeviceSign; //本机设备标志
|
||||||
|
uint32_t AddNumber; //本机地址编号,数字部分对应唯一地址编号
|
||||||
//09 00 01 00 00 00
|
//09 00 01 00 00 00
|
||||||
uint8_t LocalMAC[6] = {LocalType & 0xFF, (LocalType >> 8) & 0xFF, CommWay, (AddNumber >> 16) & 0xFF, (AddNumber >> 8) & 0xFF, AddNumber & 0xFF}; //本机MAC地址
|
uint8_t LocalMAC[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};//本机MAC地址
|
||||||
uint8_t GatewayMAC[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //网关MAC地址,注册时全为0
|
uint8_t GatewayMAC[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //网关MAC地址,注册时全为0
|
||||||
uint8_t LocalDataPack[LocalDataLen]; //本机数据包
|
uint8_t LocalDataPack[sizeof(SGCP.DevData.LaserTracing)]; //本机数据包
|
||||||
|
uint8_t LocalDataLen = sizeof(SGCP.DevData.LaserTracing); //本机设备数据长度
|
||||||
|
|
||||||
SGCP_t SGCP;
|
SGCP_t SGCP;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
#include "Update.h"
|
#include "Update.h"
|
||||||
#include "UartDebug.h"
|
#include "UartDebug.h"
|
||||||
|
|
||||||
static BootPara_t BLPara;
|
BootPara_t BLPara;
|
||||||
|
|
||||||
/*****************************************************************************************
|
/*****************************************************************************************
|
||||||
* 函数名称: Update
|
* 函数名称: Update
|
||||||
|
|||||||
+30
-6
@@ -19,6 +19,11 @@
|
|||||||
|
|
||||||
AppDetect_t App;
|
AppDetect_t App;
|
||||||
|
|
||||||
|
extern uint32_t LocalType;
|
||||||
|
extern uint32_t CommWay;
|
||||||
|
extern uint32_t DeviceSign;
|
||||||
|
extern uint32_t AddNumber;
|
||||||
|
|
||||||
extern uint8_t LocalMAC[6]; //本机MAC地址
|
extern uint8_t LocalMAC[6]; //本机MAC地址
|
||||||
extern uint8_t GatewayMAC[6]; //网关MAC地址,注册时全为0
|
extern uint8_t GatewayMAC[6]; //网关MAC地址,注册时全为0
|
||||||
extern uint8_t LocalDataPack[sizeof(SGCP.DevData.LaserTracing)]; //本机数据包 //本机数据包
|
extern uint8_t LocalDataPack[sizeof(SGCP.DevData.LaserTracing)]; //本机数据包 //本机数据包
|
||||||
@@ -46,7 +51,12 @@ static void AppInit(void)
|
|||||||
|
|
||||||
#if(USE_BOOTLOADER == 1)
|
#if(USE_BOOTLOADER == 1)
|
||||||
UpdateInit();
|
UpdateInit();
|
||||||
|
memcpy(&LocalMAC, &BLPara.DevMac[0], 6);
|
||||||
|
SX1276LoRaSetFreqHz(BLPara.LoraFreq); //Lora频率:433100000ul + 200000*N
|
||||||
|
LocalType = (BLPara.DevMac[0] | (BLPara.DevMac[1] << 8)); //本机设备类型
|
||||||
|
CommWay = BLPara.DevMac[2]; //本机通讯方式
|
||||||
|
DeviceSign = BLPara.DevMac[3] & 0x80; //本机设备标志
|
||||||
|
AddNumber = ((BLPara.DevMac[3] << 16)+ (BLPara.DevMac[4] << 8) + BLPara.DevMac[5]) - 0x800000; //本机地址编号,数字部分对应唯一地址编号
|
||||||
if(App.Para.FactoryFlag != 0x00)
|
if(App.Para.FactoryFlag != 0x00)
|
||||||
{
|
{
|
||||||
App.Para.FactoryFlag = 0x00;
|
App.Para.FactoryFlag = 0x00;
|
||||||
@@ -56,8 +66,20 @@ static void AppInit(void)
|
|||||||
App.Para.CaliPara.YawZero = 0;
|
App.Para.CaliPara.YawZero = 0;
|
||||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||||
}
|
}
|
||||||
|
#elif
|
||||||
|
LocalType = LASER_TRACING; //本机设备类型
|
||||||
|
CommWay = LORA; //本机通讯方式
|
||||||
|
DeviceSign = MASTER; //本机设备标志
|
||||||
|
AddNumber = 0x000023 + DeviceSign;//本机地址编号,数字部分对应唯一地址编号
|
||||||
|
SX1276LoRaSetFreqHz(CH0); //Lora频率:433100000ul + 200000*N
|
||||||
|
LocalMAC[0] = LocalType & 0xFF; //本机MAC地址
|
||||||
|
LocalMAC[1] = (LocalType >> 8) & 0xFF;
|
||||||
|
LocalMAC[2] = CommWay;
|
||||||
|
LocalMAC[3] = (AddNumber >> 16) & 0xFF;
|
||||||
|
LocalMAC[4] = (AddNumber >> 8) & 0xFF;
|
||||||
|
LocalMAC[5] = AddNumber & 0xFF;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(App.Para.RS485Addr > 16 || App.Para.RS485Addr < 1){
|
if(App.Para.RS485Addr > 16 || App.Para.RS485Addr < 1){
|
||||||
App.Para.RS485Addr = 1;
|
App.Para.RS485Addr = 1;
|
||||||
}
|
}
|
||||||
@@ -77,7 +99,7 @@ static void AppInit(void)
|
|||||||
DBG_LOG("\r\n\r\n");
|
DBG_LOG("\r\n\r\n");
|
||||||
DBG_LOG("****************************************************\r\n");
|
DBG_LOG("****************************************************\r\n");
|
||||||
DBG_LOG("** **\r\n");
|
DBG_LOG("** **\r\n");
|
||||||
DBG_LOG("** LaserTracing **\r\n");
|
DBG_LOG("** LaserTracing **\r\n");
|
||||||
DBG_LOG("** SoftWare V:%d.%d **\r\n", SOFTWARE_VERSION / 10, SOFTWARE_VERSION % 10);
|
DBG_LOG("** SoftWare V:%d.%d **\r\n", SOFTWARE_VERSION / 10, SOFTWARE_VERSION % 10);
|
||||||
DBG_LOG("** HardWare V:%d.%d **\r\n", HARDWARE_VERSION / 10, HARDWARE_VERSION % 10);
|
DBG_LOG("** HardWare V:%d.%d **\r\n", HARDWARE_VERSION / 10, HARDWARE_VERSION % 10);
|
||||||
DBG_LOG("** Compile: %s %s **\r\n", __DATE__, __TIME__);
|
DBG_LOG("** Compile: %s %s **\r\n", __DATE__, __TIME__);
|
||||||
@@ -85,8 +107,10 @@ static void AppInit(void)
|
|||||||
DBG_LOG("****************************************************\r\n\r\n");
|
DBG_LOG("****************************************************\r\n\r\n");
|
||||||
DBG_LOG("RS485Addr: %02X\r\n",App.Para.RS485Addr);
|
DBG_LOG("RS485Addr: %02X\r\n",App.Para.RS485Addr);
|
||||||
DBG_LOG("LocalMAC: %02X %02X %02X %02X %02X %02X\r\n",LocalMAC[0], LocalMAC[1], LocalMAC[2], LocalMAC[3], LocalMAC[4], LocalMAC[5]);
|
DBG_LOG("LocalMAC: %02X %02X %02X %02X %02X %02X\r\n",LocalMAC[0], LocalMAC[1], LocalMAC[2], LocalMAC[3], LocalMAC[4], LocalMAC[5]);
|
||||||
DBG_LOG("CollectTime: %ds\r\n\r\n",(App.Para.Layout.CollectTime*30));
|
DBG_LOG("CollectTime: %ds\r\n",(App.Para.Layout.CollectTime*30));
|
||||||
|
DBG_LOG("LoraFreq: %d\r\n\r\n",BLPara.LoraFreq);
|
||||||
|
//09 00 01 00 00 00
|
||||||
|
|
||||||
LORAIntEnable();
|
LORAIntEnable();
|
||||||
Sx1276LoRaInit(LORA_RxCallBack); //< LORA芯片初始化
|
Sx1276LoRaInit(LORA_RxCallBack); //< LORA芯片初始化
|
||||||
FeedDog();
|
FeedDog();
|
||||||
@@ -480,7 +504,7 @@ void SysTick_CallBack(void)
|
|||||||
void RtcIRQHander(void)
|
void RtcIRQHander(void)
|
||||||
{
|
{
|
||||||
//SGCP.TimingAcquisition = true; //30S更新一次数据
|
//SGCP.TimingAcquisition = true; //30S更新一次数据
|
||||||
#if USE_LORA_CH == 0
|
#if USE_LORA_CH == CH0
|
||||||
App.Tcnt++;//一分钟开启激光3秒
|
App.Tcnt++;//一分钟开启激光3秒
|
||||||
if(App.Tcnt >= 2)
|
if(App.Tcnt >= 2)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user