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) {