From 3045db0ef6d01e95839316930d0ed5de63e3b1fc Mon Sep 17 00:00:00 2001 From: YuanHongbin <975559679@qq.com> Date: Mon, 7 Sep 2026 18:00:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(lora):=20=E5=AE=BD=E9=A2=91=E4=BF=A1?= =?UTF-8?q?=E9=81=93=E8=A1=A8=E6=89=A9=E5=B1=95=E4=B8=BA120=E4=BF=A1?= =?UTF-8?q?=E9=81=93(433.1MHz~492.6MHz)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - sx127x.h: 信道宏CH0~CH119, 基准433100000ul+500kHz步进(CH0=433.1MHz, CH119=492.6MHz) - sx127x.h: SX1276_CHANNEL_MAX 46 -> 120, LoraSetChannel范围检查自动跟随 - sx127x.c: gdwSx1276ChannelTbl信道表扩为120项 - sx127x.c: LoraSetFreqCent频率校验范围改为433.1MHz~492.6MHz(原470.1下限会拒绝CH0~CH73) - main.c: 频率校验失败回退默认值改为CH0(433.1MHz) - 注意: 信道号与窄频版(develop)语义不同, 同编号对应不同频率, 两种固件设备互不相通 - 默认信道CH8在宽频下为437.1MHz --- Project/GateWay/source/Module/sx127x/sx127x.c | 19 +- Project/GateWay/source/Module/sx127x/sx127x.h | 170 +++++++++++++----- Project/GateWay/source/User/Src/main.c | 2 +- 3 files changed, 136 insertions(+), 55 deletions(-) diff --git a/Project/GateWay/source/Module/sx127x/sx127x.c b/Project/GateWay/source/Module/sx127x/sx127x.c index 8b6a3fe..818b930 100644 --- a/Project/GateWay/source/Module/sx127x/sx127x.c +++ b/Project/GateWay/source/Module/sx127x/sx127x.c @@ -474,11 +474,18 @@ void Sx1276LoRaWakeup(void) //配置本层参数的函数 //频道表 const uint32_t gdwSx1276ChannelTbl[SX1276_CHANNEL_MAX]={ - CH0, CH1, CH2, CH3, CH4, CH5, CH6, CH7, CH8, CH9, - CH10, CH11, CH12, CH13, CH14, CH15, CH16, CH17, CH18, CH19, - CH20, CH21, CH22, CH23, CH24, CH25, CH26, CH27, CH28, CH29, - CH30, CH31, CH32, CH33, CH34, CH35, CH36, CH37, CH38, CH39, - CH40, CH41, CH42, CH43, CH44, CH45 + CH0, CH1, CH2, CH3, CH4, CH5, CH6, CH7, CH8, CH9, + CH10, CH11, CH12, CH13, CH14, CH15, CH16, CH17, CH18, CH19, + CH20, CH21, CH22, CH23, CH24, CH25, CH26, CH27, CH28, CH29, + CH30, CH31, CH32, CH33, CH34, CH35, CH36, CH37, CH38, CH39, + CH40, CH41, CH42, CH43, CH44, CH45, CH46, CH47, CH48, CH49, + CH50, CH51, CH52, CH53, CH54, CH55, CH56, CH57, CH58, CH59, + CH60, CH61, CH62, CH63, CH64, CH65, CH66, CH67, CH68, CH69, + CH70, CH71, CH72, CH73, CH74, CH75, CH76, CH77, CH78, CH79, + CH80, CH81, CH82, CH83, CH84, CH85, CH86, CH87, CH88, CH89, + CH90, CH91, CH92, CH93, CH94, CH95, CH96, CH97, CH98, CH99, + CH100, CH101, CH102, CH103, CH104, CH105, CH106, CH107, CH108, CH109, + CH110, CH111, CH112, CH113, CH114, CH115, CH116, CH117, CH118, CH119 }; //LORAPT_CHANNEL @@ -666,7 +673,7 @@ bool LoraSetRegPreamble(uint8_t RegPreamble) } bool LoraSetFreqCent(uint32_t FreqCent) { - if(FreqCent < 470100000 || FreqCent > 492600000) + if(FreqCent < 433100000 || FreqCent > 492600000) //lora-wide: 433.1MHz~492.6MHz(与信道表匹配) return false; LoRaPara.dwFreqHz = FreqCent; return true; diff --git a/Project/GateWay/source/Module/sx127x/sx127x.h b/Project/GateWay/source/Module/sx127x/sx127x.h index 1330c4f..11df893 100644 --- a/Project/GateWay/source/Module/sx127x/sx127x.h +++ b/Project/GateWay/source/Module/sx127x/sx127x.h @@ -660,7 +660,7 @@ typedef enum{ LORAPT_MAX }Sx1276LoraParaType; -#define SX1276_CHANNEL_MAX 46 +#define SX1276_CHANNEL_MAX 120 #define LORA_SPI_NSS_SET() SPI2_NSS_SET() #define LORA_SPI_NSS_CLR() SPI2_NSS_CLR() @@ -758,54 +758,128 @@ typedef struct { #endif /* -Lora频率:470100000ul + 500000*N, N=0~45, 共46个信道(470.1MHz~492.6MHz) +Lora频率:433100000ul + 500000*N, N=0~119, 共120个信道(433.1MHz~492.6MHz) [lora-wide宽频版] */ -#define CH0 (470100000ul + 0) //470.1MHz -#define CH1 (470100000ul + 500000) -#define CH2 (470100000ul + 1000000) -#define CH3 (470100000ul + 1500000) -#define CH4 (470100000ul + 2000000) -#define CH5 (470100000ul + 2500000) -#define CH6 (470100000ul + 3000000) -#define CH7 (470100000ul + 3500000) -#define CH8 (470100000ul + 4000000) -#define CH9 (470100000ul + 4500000) -#define CH10 (470100000ul + 5000000) -#define CH11 (470100000ul + 5500000) -#define CH12 (470100000ul + 6000000) -#define CH13 (470100000ul + 6500000) -#define CH14 (470100000ul + 7000000) -#define CH15 (470100000ul + 7500000) -#define CH16 (470100000ul + 8000000) -#define CH17 (470100000ul + 8500000) -#define CH18 (470100000ul + 9000000) -#define CH19 (470100000ul + 9500000) -#define CH20 (470100000ul + 10000000) -#define CH21 (470100000ul + 10500000) -#define CH22 (470100000ul + 11000000) -#define CH23 (470100000ul + 11500000) -#define CH24 (470100000ul + 12000000) -#define CH25 (470100000ul + 12500000) -#define CH26 (470100000ul + 13000000) -#define CH27 (470100000ul + 13500000) -#define CH28 (470100000ul + 14000000) -#define CH29 (470100000ul + 14500000) -#define CH30 (470100000ul + 15000000) -#define CH31 (470100000ul + 15500000) -#define CH32 (470100000ul + 16000000) -#define CH33 (470100000ul + 16500000) -#define CH34 (470100000ul + 17000000) -#define CH35 (470100000ul + 17500000) -#define CH36 (470100000ul + 18000000) -#define CH37 (470100000ul + 18500000) -#define CH38 (470100000ul + 19000000) -#define CH39 (470100000ul + 19500000) -#define CH40 (470100000ul + 20000000) -#define CH41 (470100000ul + 20500000) -#define CH42 (470100000ul + 21000000) -#define CH43 (470100000ul + 21500000) -#define CH44 (470100000ul + 22000000) -#define CH45 (470100000ul + 22500000) //492.6MHz +#define CH0 (433100000ul + 0) //433.1MHz +#define CH1 (433100000ul + 500000) +#define CH2 (433100000ul + 1000000) +#define CH3 (433100000ul + 1500000) +#define CH4 (433100000ul + 2000000) +#define CH5 (433100000ul + 2500000) +#define CH6 (433100000ul + 3000000) +#define CH7 (433100000ul + 3500000) +#define CH8 (433100000ul + 4000000) +#define CH9 (433100000ul + 4500000) +#define CH10 (433100000ul + 5000000) +#define CH11 (433100000ul + 5500000) +#define CH12 (433100000ul + 6000000) +#define CH13 (433100000ul + 6500000) +#define CH14 (433100000ul + 7000000) +#define CH15 (433100000ul + 7500000) +#define CH16 (433100000ul + 8000000) +#define CH17 (433100000ul + 8500000) +#define CH18 (433100000ul + 9000000) +#define CH19 (433100000ul + 9500000) +#define CH20 (433100000ul + 10000000) +#define CH21 (433100000ul + 10500000) +#define CH22 (433100000ul + 11000000) +#define CH23 (433100000ul + 11500000) +#define CH24 (433100000ul + 12000000) +#define CH25 (433100000ul + 12500000) +#define CH26 (433100000ul + 13000000) +#define CH27 (433100000ul + 13500000) +#define CH28 (433100000ul + 14000000) +#define CH29 (433100000ul + 14500000) +#define CH30 (433100000ul + 15000000) +#define CH31 (433100000ul + 15500000) +#define CH32 (433100000ul + 16000000) +#define CH33 (433100000ul + 16500000) +#define CH34 (433100000ul + 17000000) +#define CH35 (433100000ul + 17500000) +#define CH36 (433100000ul + 18000000) +#define CH37 (433100000ul + 18500000) +#define CH38 (433100000ul + 19000000) +#define CH39 (433100000ul + 19500000) +#define CH40 (433100000ul + 20000000) +#define CH41 (433100000ul + 20500000) +#define CH42 (433100000ul + 21000000) +#define CH43 (433100000ul + 21500000) +#define CH44 (433100000ul + 22000000) +#define CH45 (433100000ul + 22500000) +#define CH46 (433100000ul + 23000000) +#define CH47 (433100000ul + 23500000) +#define CH48 (433100000ul + 24000000) +#define CH49 (433100000ul + 24500000) +#define CH50 (433100000ul + 25000000) +#define CH51 (433100000ul + 25500000) +#define CH52 (433100000ul + 26000000) +#define CH53 (433100000ul + 26500000) +#define CH54 (433100000ul + 27000000) +#define CH55 (433100000ul + 27500000) +#define CH56 (433100000ul + 28000000) +#define CH57 (433100000ul + 28500000) +#define CH58 (433100000ul + 29000000) +#define CH59 (433100000ul + 29500000) +#define CH60 (433100000ul + 30000000) +#define CH61 (433100000ul + 30500000) +#define CH62 (433100000ul + 31000000) +#define CH63 (433100000ul + 31500000) +#define CH64 (433100000ul + 32000000) +#define CH65 (433100000ul + 32500000) +#define CH66 (433100000ul + 33000000) +#define CH67 (433100000ul + 33500000) +#define CH68 (433100000ul + 34000000) +#define CH69 (433100000ul + 34500000) +#define CH70 (433100000ul + 35000000) +#define CH71 (433100000ul + 35500000) +#define CH72 (433100000ul + 36000000) +#define CH73 (433100000ul + 36500000) +#define CH74 (433100000ul + 37000000) +#define CH75 (433100000ul + 37500000) +#define CH76 (433100000ul + 38000000) +#define CH77 (433100000ul + 38500000) +#define CH78 (433100000ul + 39000000) +#define CH79 (433100000ul + 39500000) +#define CH80 (433100000ul + 40000000) +#define CH81 (433100000ul + 40500000) +#define CH82 (433100000ul + 41000000) +#define CH83 (433100000ul + 41500000) +#define CH84 (433100000ul + 42000000) +#define CH85 (433100000ul + 42500000) +#define CH86 (433100000ul + 43000000) +#define CH87 (433100000ul + 43500000) +#define CH88 (433100000ul + 44000000) +#define CH89 (433100000ul + 44500000) +#define CH90 (433100000ul + 45000000) +#define CH91 (433100000ul + 45500000) +#define CH92 (433100000ul + 46000000) +#define CH93 (433100000ul + 46500000) +#define CH94 (433100000ul + 47000000) +#define CH95 (433100000ul + 47500000) +#define CH96 (433100000ul + 48000000) +#define CH97 (433100000ul + 48500000) +#define CH98 (433100000ul + 49000000) +#define CH99 (433100000ul + 49500000) +#define CH100 (433100000ul + 50000000) +#define CH101 (433100000ul + 50500000) +#define CH102 (433100000ul + 51000000) +#define CH103 (433100000ul + 51500000) +#define CH104 (433100000ul + 52000000) +#define CH105 (433100000ul + 52500000) +#define CH106 (433100000ul + 53000000) +#define CH107 (433100000ul + 53500000) +#define CH108 (433100000ul + 54000000) +#define CH109 (433100000ul + 54500000) +#define CH110 (433100000ul + 55000000) +#define CH111 (433100000ul + 55500000) +#define CH112 (433100000ul + 56000000) +#define CH113 (433100000ul + 56500000) +#define CH114 (433100000ul + 57000000) +#define CH115 (433100000ul + 57500000) +#define CH116 (433100000ul + 58000000) +#define CH117 (433100000ul + 58500000) +#define CH118 (433100000ul + 59000000) +#define CH119 (433100000ul + 59500000) //492.6MHz /*Lora中心频率默认值(编译期用于频道表等) 实际运行频率由Boot参数区(BootPara_t.LoraFreq)配置, APP启动时覆盖ConfigPara.Lora.FreqCent*/ diff --git a/Project/GateWay/source/User/Src/main.c b/Project/GateWay/source/User/Src/main.c index 4f351fd..31de0b1 100644 --- a/Project/GateWay/source/User/Src/main.c +++ b/Project/GateWay/source/User/Src/main.c @@ -235,7 +235,7 @@ void GateWayInit(void) } if(LoraSetFreqCent(GateWay.ConfigPara.Lora.FreqCent) == false) { - GateWay.ConfigPara.Lora.FreqCent = 470100000; + GateWay.ConfigPara.Lora.FreqCent = 433100000; //lora-wide: 回退到CH0 LoraSetFreqCent(GateWay.ConfigPara.Lora.FreqCent); } if(LoraSetPower(GateWay.ConfigPara.Lora.ucPower) == false) {