From 2b23e8f0edde68ca1e3716df16c9091a06c01faf Mon Sep 17 00:00:00 2001
From: YuanHongbin <975559679@qq.com>
Date: Mon, 11 May 2026 10:02:31 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86BootPara=E7=BB=93?=
=?UTF-8?q?=E6=9E=84=E4=BD=93=E7=9A=84=E5=8F=82=E6=95=B0=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
MDK/hc32l17x.uvoptx | 18 ++++++++++++++----
source/inc/bsp.h | 22 ++++++++++++++++++++--
source/src/main.c | 16 +++++++++++++++-
3 files changed, 49 insertions(+), 7 deletions(-)
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) {