diff --git a/MDK/hc32l17x.uvoptx b/MDK/hc32l17x.uvoptx index b6015ea..85bb2cc 100644 --- a/MDK/hc32l17x.uvoptx +++ b/MDK/hc32l17x.uvoptx @@ -103,7 +103,7 @@ 1 0 0 - 12 + 6 @@ -114,7 +114,7 @@ - BIN\CMSIS_AGDI.dll + Segger\JL2CM3.dll @@ -130,7 +130,7 @@ 0 JL2CM3 - -U4294967295 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8027 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K.FLM -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM) + -U4294967295 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8027 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO31 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K.FLM -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM) 0 @@ -190,6 +190,16 @@ 1 BL.Status,0x0A + + 7 + 1 + BL.Para + + + 8 + 1 + DevMac + @@ -213,7 +223,7 @@ 0 1 - 1 + 0 0 0 0 diff --git a/source/inc/bsp.h b/source/inc/bsp.h index 85c5f51..95f0a98 100644 --- a/source/inc/bsp.h +++ b/source/inc/bsp.h @@ -43,7 +43,20 @@ typedef enum { MASTER = 0x000000, //0x000000 主设备 SUBSET = 0x800000, //0x800000 子设备 }DEVICE_SIGN_M; - +/*Lora频率:433100000ul + 200000*N */ +typedef enum { + CH0 = (433100000ul + 0), //测试频率 + CH1 = (433100000ul + 200000), + CH2 = (433100000ul + 400000), + CH3 = (433100000ul + 600000), + CH4 = (433100000ul + 800000), + CH5 = (433100000ul + 1000000), + CH6 = (433100000ul + 1200000), + CH7 = (433100000ul + 1400000), + CH8 = (433100000ul + 1600000), + CH9 = (433100000ul + 1800000), + CH10 = (433100000ul + 2000000), +}LORA_FREQ_M; /*设备类型选择*/ #define DEVICE_TYPE LASER_TRACING /*通讯方式选择*/ @@ -51,7 +64,9 @@ typedef enum { /*设备标志选择*/ #define DEVICE_SIGN MASTER /*设备地址编号设置*/ -#define ADD_NUMBER (0x000000 + DEVICE_SIGN) //数字部分对应唯一地址编号 +#define ADD_NUMBER (0x000023 + DEVICE_SIGN) //数字部分对应唯一地址编号 +/*Lora频率配置*/ +#define LORA_FREQ CH1 #if(DEVICE_TYPE == LASER_TRACING) #define LP_UART_CH 0 @@ -228,6 +243,9 @@ typedef struct { uint32_t PackageCnt; uint32_t AppSize; uint32_t Crc32Check; + uint32_t FirstRunFlag;//第一次运行 + uint8_t DevMac[6];//设备MAC + uint32_t LoraFreq;//Lora频率 }BootPara_t, *BootPara; typedef void (*ReadPara)(BootPara_t rPara); diff --git a/source/src/main.c b/source/src/main.c index f4e5548..a127c79 100644 --- a/source/src/main.c +++ b/source/src/main.c @@ -259,7 +259,21 @@ int32_t main(void) InitCrc32Table(pdwCrc32Tbl); ReadBootPara(&BL.Para); - if(BL.Para.AppFlag == APP_START_FLAG) { + if((BL.Para.DevMac[0] | (BL.Para.DevMac[1] << 8)) != DEVICE_TYPE){ //璁惧绫诲瀷閿欒锛屾竻闄ゅ崌绾у弬鏁 + if(BL.Para.FirstRunFlag == 0xFFFFFFFF) { + BL.Status = BL_START_APP; + } + else { + BL.Status = BL_IDLE; + } + BL.Para.AppFlag = 0; + BL.Para.UpdateFlag = 0; + BL.Para.FirstRunFlag = 0; + memcpy(&BL.Para.DevMac, &DevMac[0], 6); + BL.Para.LoraFreq = LORA_FREQ; + WriteBootPara(&BL.Para); + } + else if(BL.Para.AppFlag == APP_START_FLAG) { BL.Status = BL_START_APP; } else if(BL.Para.UpdateFlag == APP_UPDATE_FLAG) {