修复源代码中文注释乱码并统一为UTF-8编码,Lora频率改为470MHz频段

1. 修复 source/inc/bsp.h、source/inc/main.h、source/src/bsp.c 中文注释乱码,统一保存为UTF-8编码
2. Lora中心频率由433.1MHz改为470.1MHz~492.6MHz,步进500kHz,共46个信道(CH0~CH45)
3. 新增下载前配置检查注释块,LORA_FREQ默认信道改为CH0
4. 更新Keil调试配置(CMSIS_AGDI调试器及观察窗口设置)
This commit is contained in:
2026-09-02 12:55:16 +08:00
parent 2b23e8f0ed
commit 483114547f
4 changed files with 157 additions and 128 deletions
+4 -14
View File
@@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf> <bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf> <bTchkAxf>0</bTchkAxf>
<nTsel>6</nTsel> <nTsel>12</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>Segger\JL2CM3.dll</pMon> <pMon>BIN\CMSIS_AGDI.dll</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry> <SetRegEntry>
@@ -130,7 +130,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>JL2CM3</Key> <Key>JL2CM3</Key>
<Name>-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)</Name> <Name>-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)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@@ -190,16 +190,6 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>BL.Status,0x0A</ItemText> <ItemText>BL.Status,0x0A</ItemText>
</Ww> </Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>BL.Para</ItemText>
</Ww>
<Ww>
<count>8</count>
<WinNumber>1</WinNumber>
<ItemText>DevMac</ItemText>
</Ww>
</WatchWindow1> </WatchWindow1>
<MemoryWindow1> <MemoryWindow1>
<Mm> <Mm>
@@ -223,7 +213,7 @@
<DebugFlag> <DebugFlag>
<trace>0</trace> <trace>0</trace>
<periodic>1</periodic> <periodic>1</periodic>
<aLwin>0</aLwin> <aLwin>1</aLwin>
<aCover>0</aCover> <aCover>0</aCover>
<aSer1>0</aSer1> <aSer1>0</aSer1>
<aSer2>0</aSer2> <aSer2>0</aSer2>
+96 -57
View File
@@ -5,68 +5,107 @@
#include <stdbool.h> #include <stdbool.h>
#include "gpio.h" #include "gpio.h"
/*设备类型*/ /*设备类型*/
#define FORCE_6D 0x0001 //0x0001 六维应力 #define FORCE_6D 0x0001 //0x0001 六维应力
#define OSMOTIC_PRESSURE 0x0002 //0x0002 渗透压 #define OSMOTIC_PRESSURE 0x0002 //0x0002 渗透压
#define ELASTIC_WAVEGUIDE 0x0003 //0x0003 弹性波导 #define ELASTIC_WAVEGUIDE 0x0003 //0x0003 弹性波导
#define DIELECTRIC_MASS 0x0004 //0x0004 介电质 #define DIELECTRIC_MASS 0x0004 //0x0004 介电质
#define _0x0005 0x0005 //0x0005 保留 #define _0x0005 0x0005 //0x0005 保留
#define CONT_DEFOR_3D 0x0006 //0x0006 三维连续变形 #define CONT_DEFOR_3D 0x0006 //0x0006 三维连续变形
#define COMM_UNIT 0x0007 //0x0007 通讯单元 #define COMM_UNIT 0x0007 //0x0007 通讯单元
#define FORCE_3D 0x0008 //0x0008 三维应力 #define FORCE_3D 0x0008 //0x0008 三维应力
#define LASER_TRACING 0x0009 //0x0009 激光示踪 #define LASER_TRACING 0x0009 //0x0009 激光示踪
#define _0x000A 0x000A //0x000A 保留 #define _0x000A 0x000A //0x000A 保留
#define _0x000B 0x000B //0x000B 保留 #define _0x000B 0x000B //0x000B 保留
#define _0x000C 0x000C //0x000C 保留 #define _0x000C 0x000C //0x000C 保留
#define MULTI_PARAMETER_FUSION 0x000D //0x000D 多参数融合 #define MULTI_PARAMETER_FUSION 0x000D //0x000D 多参数融合
#define CRACK_DETECTION 0x000E //0x000E 裂缝 #define CRACK_DETECTION 0x000E //0x000E 裂缝检测
#define _0x000F 0x000F //0x000F 保留 #define _0x000F 0x000F //0x000F 保留
#define ATTITUDE_MONITOR 0x0010 //0x0010 姿态检测 #define ATTITUDE_MONITOR 0x0010 //0x0010 姿态检测
#define LASER_DISPLACE 0x0011 //0x0011 激光位移 #define LASER_DISPLACE 0x0011 //0x0011 激光位移
#define REBAR_STRESS 0x0012 //0x0012 钢筋应力 #define REBAR_STRESS 0x0012 //0x0012 钢筋应力
#define ANCHOR_ROD_STRESS 0x0013 //0x0013 锚杆轴力 #define ANCHOR_ROD_STRESS 0x0013 //0x0013 锚杆轴力
#define SURFACE_STRESS 0x0014 //0x0014 表面应力 #define SURFACE_STRESS 0x0014 //0x0014 表面应力
#define PRESSURE 0x0015 //0x0015 压力 #define PRESSURE 0x0015 //0x0015 压力
#define MICROWAVE_DISPLACE 0x0016 //0x0016 微波测距 #define MICROWAVE_DISPLACE 0x0016 //0x0016 微波测距
/*通讯方式*/ /*通讯方式*/
typedef enum { typedef enum {
LORA = 0x01, //0x01 LORA通讯 LORA = 0x01, //0x01 LORA通讯
RS485 = 0x02, //0x02 RS485通讯 RS485 = 0x02, //0x02 RS485通讯
RS232 = 0x03, //0x03 RS232通讯 RS232 = 0x03, //0x03 RS232通讯
CAN = 0x04, //0x04 CAN通讯 CAN = 0x04, //0x04 CAN通讯
_4G = 0x05, //0x05 _4G通讯 _4G = 0x05, //0x05 _4G通讯
BLE = 0x06, //0x06 BLE通讯 BLE = 0x06, //0x06 BLE通讯
WIFI = 0x07, //0x07 WIFI通讯 WIFI = 0x07, //0x07 WIFI通讯
}COMM_WAY_M; }COMM_WAY_M;
/*设备标志*/ /*设备标志*/
typedef enum { typedef enum {
MASTER = 0x000000, //0x000000 主设备 MASTER = 0x000000, //0x000000 主设备
SUBSET = 0x800000, //0x800000 子设备 SUBSET = 0x800000, //0x800000 子设备
}DEVICE_SIGN_M; }DEVICE_SIGN_M;
/*Lora频率:433100000ul + 200000*N */ /*Lora频率:470100000ul + 500000*N */
typedef enum { typedef enum {
CH0 = (433100000ul + 0), //测试频率 CH0 = (470100000ul + 0), //测试频率
CH1 = (433100000ul + 200000), CH1 = (470100000ul + 500000),
CH2 = (433100000ul + 400000), CH2 = (470100000ul + 1000000),
CH3 = (433100000ul + 600000), CH3 = (470100000ul + 1500000),
CH4 = (433100000ul + 800000), CH4 = (470100000ul + 2000000),
CH5 = (433100000ul + 1000000), CH5 = (470100000ul + 2500000),
CH6 = (433100000ul + 1200000), CH6 = (470100000ul + 3000000),
CH7 = (433100000ul + 1400000), CH7 = (470100000ul + 3500000),
CH8 = (433100000ul + 1600000), CH8 = (470100000ul + 4000000),
CH9 = (433100000ul + 1800000), CH9 = (470100000ul + 4500000),
CH10 = (433100000ul + 2000000), CH10 = (470100000ul + 5000000),
CH11 = (470100000ul + 5500000),
CH12 = (470100000ul + 6000000),
CH13 = (470100000ul + 6500000),
CH14 = (470100000ul + 7000000),
CH15 = (470100000ul + 7500000),
CH16 = (470100000ul + 8000000),
CH17 = (470100000ul + 8500000),
CH18 = (470100000ul + 9000000),
CH19 = (470100000ul + 9500000),
CH20 = (470100000ul + 10000000),
CH21 = (470100000ul + 10500000),
CH22 = (470100000ul + 11000000),
CH23 = (470100000ul + 11500000),
CH24 = (470100000ul + 12000000),
CH25 = (470100000ul + 12500000),
CH26 = (470100000ul + 13000000),
CH27 = (470100000ul + 13500000),
CH28 = (470100000ul + 14000000),
CH29 = (470100000ul + 14500000),
CH30 = (470100000ul + 15000000),
CH31 = (470100000ul + 15500000),
CH32 = (470100000ul + 16000000),
CH33 = (470100000ul + 16500000),
CH34 = (470100000ul + 17000000),
CH35 = (470100000ul + 17500000),
CH36 = (470100000ul + 18000000),
CH37 = (470100000ul + 18500000),
CH38 = (470100000ul + 19000000),
CH39 = (470100000ul + 19500000),
CH40 = (470100000ul + 20000000),
CH41 = (470100000ul + 20500000),
CH42 = (470100000ul + 21000000),
CH43 = (470100000ul + 21500000),
CH44 = (470100000ul + 22000000),
CH45 = (470100000ul + 22500000), //最高频率
}LORA_FREQ_M; }LORA_FREQ_M;
/*设备类型选择*/ /*****************************************************************************************/
/*********************************下载前必须检查配置项************************************/
/*设备类型选择*/
#define DEVICE_TYPE LASER_TRACING #define DEVICE_TYPE LASER_TRACING
/*通讯方式选择*/ /*通讯方式选择*/
#define COMM_WAY LORA #define COMM_WAY LORA
/*设备标志选择*/ /*设备标志选择*/
#define DEVICE_SIGN MASTER #define DEVICE_SIGN MASTER
/*设备地址编号设置*/ /*设备地址编号设置*/
#define ADD_NUMBER (0x000023 + DEVICE_SIGN) //数字部分对应唯一地址编号 #define ADD_NUMBER (0x000023 + DEVICE_SIGN) //数字部分对应唯一地址编号
/*Lora频率配置*/ /*Lora频率配置*/
#define LORA_FREQ CH1 #define LORA_FREQ CH0
/*****************************************************************************************/
/*********************************下载前必须检查配置项************************************/
#if(DEVICE_TYPE == LASER_TRACING) #if(DEVICE_TYPE == LASER_TRACING)
#define LP_UART_CH 0 #define LP_UART_CH 0
@@ -229,7 +268,7 @@ typedef enum {
#define USE_LOWPOWER 0 #define USE_LOWPOWER 0
#define USE_WDT 1 #define USE_WDT 1
//#define WAKEUP_TIME_ARR (65536 - (30 * 150)) //65536 - time * 38400Hz / 256分频 //#define WAKEUP_TIME_ARR (65536 - (30 * 150)) //65536 - time * 38400Hz / 256分频
#define SYSCLK_RCH 0 #define SYSCLK_RCH 0
#define SYSCLK_XTH 1 #define SYSCLK_XTH 1
@@ -243,9 +282,9 @@ typedef struct {
uint32_t PackageCnt; uint32_t PackageCnt;
uint32_t AppSize; uint32_t AppSize;
uint32_t Crc32Check; uint32_t Crc32Check;
uint32_t FirstRunFlag;//第一次运行 uint32_t FirstRunFlag;//第一次运行
uint8_t DevMac[6];//设备MAC uint8_t DevMac[6];//设备MAC
uint32_t LoraFreq;//Lora频率 uint32_t LoraFreq;//Lora频率
}BootPara_t, *BootPara; }BootPara_t, *BootPara;
typedef void (*ReadPara)(BootPara_t rPara); typedef void (*ReadPara)(BootPara_t rPara);
+8 -8
View File
@@ -10,13 +10,13 @@
typedef enum { typedef enum {
UPDATE_CMD_NULL, UPDATE_CMD_NULL,
UPDATE_CMD_SLAVE_RES, //从机应答主机下发 UPDATE_CMD_SLAVE_RES, //从机应答主机下发
UPDATE_CMD_SLAVE_REQ_DATA, //从机请求主机下发数据 UPDATE_CMD_SLAVE_REQ_DATA, //从机请求主机下发数据
UPDATE_CMD_MASTER_REQ = 0x81, //主机请求升级 UPDATE_CMD_MASTER_REQ = 0x81, //主机请求升级
UPDATE_CMD_MASTRE_RES_DATA, //主机发送数据 UPDATE_CMD_MASTRE_RES_DATA, //主机发送数据
}UpdateCmd_m; }UpdateCmd_m;
//帧头结构体 //帧头结构体
typedef struct { typedef struct {
uint8_t Header; uint8_t Header;
uint8_t DevMac[6]; uint8_t DevMac[6];
@@ -24,20 +24,20 @@ typedef struct {
uint8_t PayloadLen; uint8_t PayloadLen;
}__attribute__ ((packed))FrameHeader_t, *FrameH; }__attribute__ ((packed))FrameHeader_t, *FrameH;
//主机下发升级请求载荷结构体 //主机下发升级请求载荷结构体
typedef struct { typedef struct {
uint16_t PackageNum; uint16_t PackageNum;
uint32_t AppSize; uint32_t AppSize;
uint32_t AppCrc32; uint32_t AppCrc32;
}__attribute__ ((packed))UpDataRequset_t, *UDReq; }__attribute__ ((packed))UpDataRequset_t, *UDReq;
//从机请求下发结构体 //从机请求下发结构体
typedef struct { typedef struct {
uint16_t PackageIndex; uint16_t PackageIndex;
uint32_t PackageNum; uint32_t PackageNum;
}__attribute__ ((packed))GetDataRequest_t, *GDReq; }__attribute__ ((packed))GetDataRequest_t, *GDReq;
//主机应答下发数据结构体 //主机应答下发数据结构体
typedef struct { typedef struct {
uint16_t PackageIndex; uint16_t PackageIndex;
uint16_t PackageNum; uint16_t PackageNum;
+49 -49
View File
@@ -22,20 +22,20 @@ static __IO bool LpUart0_Tx_Flag;
static void SystemClkInit(en_sysctrl_rch_freq_t enRchFreq) static void SystemClkInit(en_sysctrl_rch_freq_t enRchFreq)
{ {
///< RCH时钟不同频率的切换,需要先将时钟切换到RCL ///< RCH时钟不同频率的切换,需要先将时钟切换到RCL
Sysctrl_SetRCLTrim(SysctrlRclFreq32768); Sysctrl_SetRCLTrim(SysctrlRclFreq32768);
Sysctrl_SetRCLStableTime(SysctrlRclStableCycle64); Sysctrl_SetRCLStableTime(SysctrlRclStableCycle64);
Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE); Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);
Sysctrl_SysClkSwitch(SysctrlClkRCL); Sysctrl_SysClkSwitch(SysctrlClkRCL);
///< 加载目标频率的RCH的TRIM值 ///< 加载目标频率的RCH的TRIM值
Sysctrl_SetRCHTrim(enRchFreq); Sysctrl_SetRCHTrim(enRchFreq);
///< 使能RCH ///< 使能RCH
Sysctrl_ClkSourceEnable(SysctrlClkRCH, TRUE); Sysctrl_ClkSourceEnable(SysctrlClkRCH, TRUE);
///< 时钟切换到RCH ///< 时钟切换到RCH
Sysctrl_SysClkSwitch(SysctrlClkRCH); Sysctrl_SysClkSwitch(SysctrlClkRCH);
///< HCLK不超过24M:此处设置FLASH读等待周期为0 cycle ///< HCLK不超过24M:此处设置FLASH读等待周期为0 cycle
Flash_WaitCycle(FlashWaitCycle0); Flash_WaitCycle(FlashWaitCycle0);
} }
@@ -43,14 +43,14 @@ static void SystemClkInit(en_sysctrl_rch_freq_t enRchFreq)
static void SystemClkInit(en_sysctrl_xth_freq_t enXthFreq) static void SystemClkInit(en_sysctrl_xth_freq_t enXthFreq)
{ {
///<======================== 切换至XTH32MHz ============================== ///<======================== 切换至XTH32MHz ==============================
///< 当使用的时钟源HCLK大于24M:设置FLASH 读等待周期为1 cycle(默认值也为1 cycle) ///< 当使用的时钟源HCLK大于24M:设置FLASH 读等待周期为1 cycle(默认值也为1 cycle)
if(SysctrlXthFreq24_32MHz == enXthFreq) if(SysctrlXthFreq24_32MHz == enXthFreq)
{ {
Flash_WaitCycle(FlashWaitCycle1); Flash_WaitCycle(FlashWaitCycle1);
} }
///< 切换时钟前(根据外部高速晶振)设置XTH频率范围,配置晶振参数,使能目标时钟,此处为SYSTEM_XTH = 32MHz ///< 切换时钟前(根据外部高速晶振)设置XTH频率范围,配置晶振参数,使能目标时钟,此处为SYSTEM_XTH = 32MHz
Sysctrl_SetXTHFreq(enXthFreq); Sysctrl_SetXTHFreq(enXthFreq);
Sysctrl_XTHDriverCfg(SysctrlXtalDriver3); Sysctrl_XTHDriverCfg(SysctrlXtalDriver3);
Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384); Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384);
@@ -62,16 +62,16 @@ static void SystemClkInit(en_sysctrl_xth_freq_t enXthFreq)
{ {
Flash_WaitCycle(FlashWaitCycle0); Flash_WaitCycle(FlashWaitCycle0);
} }
//M0P_SYSCTRL->SYSCTRL0_f.WAKEUP_BYRCH = 0; //唤醒保持原时钟 //M0P_SYSCTRL->SYSCTRL0_f.WAKEUP_BYRCH = 0; //唤醒保持原时钟
} }
#elif (SYSCLK == SYSCLK_PLL) #elif (SYSCLK == SYSCLK_PLL)
///<请注意根据外部晶振配置宏——[SYSTEM_XTH],如果使用PLLXTH必须小于24MHz ///<请注意根据外部晶振配置宏——[SYSTEM_XTH],如果使用PLLXTH必须小于24MHz
static void SystemClkInit(void) static void SystemClkInit(void)
{ {
stc_sysctrl_pll_cfg_t stcPLLCfg; stc_sysctrl_pll_cfg_t stcPLLCfg;
///< 切换时钟前(根据外部高速晶振)设置XTH频率范围,配置晶振参数,使能目标时钟,此处为SYSTEM_XTH = 32MHz ///< 切换时钟前(根据外部高速晶振)设置XTH频率范围,配置晶振参数,使能目标时钟,此处为SYSTEM_XTH = 32MHz
// Sysctrl_SetXTHFreq(SysctrlXthFreq4_8MHz); // Sysctrl_SetXTHFreq(SysctrlXthFreq4_8MHz);
// Sysctrl_XTHDriverCfg(SysctrlXtalDriver3); // Sysctrl_XTHDriverCfg(SysctrlXtalDriver3);
// Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384); // Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384);
@@ -82,17 +82,17 @@ static void SystemClkInit(void)
delay1ms(10); delay1ms(10);
stcPLLCfg.enInFreq = SysctrlPllInFreq6_12MHz; //XTH 8MHz stcPLLCfg.enInFreq = SysctrlPllInFreq6_12MHz; //XTH 8MHz
stcPLLCfg.enOutFreq = SysctrlPllOutFreq36_48MHz; //PLL 输出 stcPLLCfg.enOutFreq = SysctrlPllOutFreq36_48MHz; //PLL 输出
stcPLLCfg.enPllClkSrc = SysctrlPllRch; //输入时钟源选择RCH stcPLLCfg.enPllClkSrc = SysctrlPllRch; //输入时钟源选择RCH
stcPLLCfg.enPllMul = SysctrlPllMul6; //8MHz x 6 = 48MHz stcPLLCfg.enPllMul = SysctrlPllMul6; //8MHz x 6 = 48MHz
Sysctrl_SetPLLFreq(&stcPLLCfg); Sysctrl_SetPLLFreq(&stcPLLCfg);
///< 当使用的时钟源HCLK大于24M:设置FLASH 读等待周期为1 cycle(默认值也为1 cycle) ///< 当使用的时钟源HCLK大于24M:设置FLASH 读等待周期为1 cycle(默认值也为1 cycle)
Flash_WaitCycle(FlashWaitCycle1); Flash_WaitCycle(FlashWaitCycle1);
///< 使能PLL ///< 使能PLL
Sysctrl_ClkSourceEnable(SysctrlClkPLL, TRUE); Sysctrl_ClkSourceEnable(SysctrlClkPLL, TRUE);
///< 时钟切换到PLL ///< 时钟切换到PLL
Sysctrl_SysClkSwitch(SysctrlClkPLL); Sysctrl_SysClkSwitch(SysctrlClkPLL);
} }
@@ -100,9 +100,9 @@ static void SystemClkInit(void)
static void SystemRCLInit(void) static void SystemRCLInit(void)
{ {
Sysctrl_SetRCLTrim(SysctrlRclFreq38400); ///< 配置RCL时钟为32kHz Sysctrl_SetRCLTrim(SysctrlRclFreq38400); ///< 配置RCL时钟为32kHz
Sysctrl_SetRCLStableTime(SysctrlRclStableCycle256); Sysctrl_SetRCLStableTime(SysctrlRclStableCycle256);
Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE); ///< 使能RCL时钟 Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE); ///< 使能RCL时钟
} }
static void LPUartInit(void) static void LPUartInit(void)
@@ -116,32 +116,32 @@ static void LPUartInit(void)
///<TX ///<TX
stcGpioCfg.enDir = GpioDirOut; stcGpioCfg.enDir = GpioDirOut;
Gpio_Init(LPUART_TX_PORT, LPUART_TX_PIN, &stcGpioCfg); Gpio_Init(LPUART_TX_PORT, LPUART_TX_PIN, &stcGpioCfg);
Gpio_SetAfMode(LPUART_TX_PORT, LPUART_TX_PIN, LPUART_TX_AF); //配置PA00为LPUART1_TX Gpio_SetAfMode(LPUART_TX_PORT, LPUART_TX_PIN, LPUART_TX_AF); //配置PA00为LPUART1_TX
//<RX //<RX
stcGpioCfg.enDir = GpioDirIn; stcGpioCfg.enDir = GpioDirIn;
Gpio_Init(LPUART_RX_PORT, LPUART_RX_PIN,&stcGpioCfg); Gpio_Init(LPUART_RX_PORT, LPUART_RX_PIN,&stcGpioCfg);
Gpio_SetAfMode(LPUART_RX_PORT, LPUART_RX_PIN, LPUART_RX_AF); //配置PA01为LPUART1_RX Gpio_SetAfMode(LPUART_RX_PORT, LPUART_RX_PIN, LPUART_RX_AF); //配置PA01为LPUART1_RX
DDL_ZERO_STRUCT(stcCfg); DDL_ZERO_STRUCT(stcCfg);
Sysctrl_SetPeripheralGate(LPUART_PERIPHERAL_CLK,TRUE); Sysctrl_SetPeripheralGate(LPUART_PERIPHERAL_CLK,TRUE);
///<LPUART 初始化 ///<LPUART 初始化
stcCfg.enStopBit = LPUart1bit; ///<1停止位 stcCfg.enStopBit = LPUart1bit; ///<1停止位
stcCfg.enMmdorCk = LPUartEven; ///<偶校验 stcCfg.enMmdorCk = LPUartEven; ///<偶校验
stcCfg.stcBaud.enSclkSel = LPUartMskRcl; ///<传输时钟源 stcCfg.stcBaud.enSclkSel = LPUartMskRcl; ///<传输时钟源
stcCfg.stcBaud.u32Sclk = 38400; ///<PCLK获取 stcCfg.stcBaud.u32Sclk = 38400; ///<PCLK获取
stcCfg.stcBaud.enSclkDiv = LPUartMsk4Or8Div; ///<采样分频 stcCfg.stcBaud.enSclkDiv = LPUartMsk4Or8Div; ///<采样分频
stcCfg.stcBaud.u32Baud = 9600; ///<波特率 stcCfg.stcBaud.u32Baud = 9600; ///<波特率
stcCfg.enRunMode = LPUartMskMode1; ///<工作模式 stcCfg.enRunMode = LPUartMskMode1; ///<工作模式
LPUart_Init(LPUART, &stcCfg); LPUart_Init(LPUART, &stcCfg);
///<LPUART 中断使能 ///<LPUART 中断使能
LPUart_ClrStatus(LPUART,LPUartRC); ///<清接收中断请求 LPUart_ClrStatus(LPUART,LPUartRC); ///<清接收中断请求
LPUart_ClrStatus(LPUART,LPUartTC); ///<清发送中断请求 LPUart_ClrStatus(LPUART,LPUartTC); ///<清发送中断请求
LPUart_EnableIrq(LPUART,LPUartTxIrq); ///<使能发送中断 LPUart_EnableIrq(LPUART,LPUartTxIrq); ///<使能发送中断
LPUart_EnableIrq(LPUART,LPUartRxIrq); ///<使能接收中断 LPUart_EnableIrq(LPUART,LPUartRxIrq); ///<使能接收中断
EnableNvic(LPUART_IRQN,IrqLevel3,TRUE); ///<系统中断使能 EnableNvic(LPUART_IRQN,IrqLevel3,TRUE); ///<系统中断使能
} }
void DBGUartSend(uint8_t *sData, int sLen) void DBGUartSend(uint8_t *sData, int sLen)
@@ -167,13 +167,13 @@ void DBGUartSend(uint8_t *sData, int sLen)
void LpUart0_IRQHandler(void) void LpUart0_IRQHandler(void)
{ {
if(LPUart_GetStatus(LPUART, LPUartTC)) { if(LPUart_GetStatus(LPUART, LPUartTC)) {
LPUart_ClrStatus(LPUART, LPUartTC); ///<清发送中断请求 LPUart_ClrStatus(LPUART, LPUartTC); ///<清发送中断请求
LpUart0_Tx_Flag = true; LpUart0_Tx_Flag = true;
} }
if(LPUart_GetStatus(LPUART, LPUartRC)) { ///接收数据 if(LPUart_GetStatus(LPUART, LPUartRC)) { ///接收数据
LPUart_ClrStatus(LPUART, LPUartRC); ///<清接收中断请求 LPUart_ClrStatus(LPUART, LPUartRC); ///<清接收中断请求
uint8_t u8RxData = LPUart_ReceiveData(LPUART); ///读取数据 uint8_t u8RxData = LPUart_ReceiveData(LPUART); ///读取数据
DebugUartIRQ(u8RxData); DebugUartIRQ(u8RxData);
} }
} }
@@ -181,13 +181,13 @@ void LpUart0_IRQHandler(void)
void LpUart1_IRQHandler(void) void LpUart1_IRQHandler(void)
{ {
if(LPUart_GetStatus(LPUART, LPUartTC)) { if(LPUart_GetStatus(LPUART, LPUartTC)) {
LPUart_ClrStatus(LPUART, LPUartTC); ///<清发送中断请求 LPUart_ClrStatus(LPUART, LPUartTC); ///<清发送中断请求
LpUart0_Tx_Flag = true; LpUart0_Tx_Flag = true;
} }
if(LPUart_GetStatus(LPUART, LPUartRC)) { ///接收数据 if(LPUart_GetStatus(LPUART, LPUartRC)) { ///接收数据
LPUart_ClrStatus(LPUART, LPUartRC); ///<清接收中断请求 LPUart_ClrStatus(LPUART, LPUartRC); ///<清接收中断请求
uint8_t u8RxData = LPUart_ReceiveData(LPUART); ///读取数据 uint8_t u8RxData = LPUart_ReceiveData(LPUART); ///读取数据
DebugUartIRQ(u8RxData); DebugUartIRQ(u8RxData);
} }
} }
@@ -200,12 +200,12 @@ static void GPIOInit(void)
DDL_ZERO_STRUCT(GpioInitStruct); DDL_ZERO_STRUCT(GpioInitStruct);
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE); Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);
GpioInitStruct.enDir = GpioDirOut; ///< 端口方向配置->输入 GpioInitStruct.enDir = GpioDirOut; ///< 端口方向配置->输入
GpioInitStruct.enDrv = GpioDrvH; ///< 端口驱动能力配置->高驱动能力 GpioInitStruct.enDrv = GpioDrvH; ///< 端口驱动能力配置->高驱动能力
GpioInitStruct.enPu = GpioPuDisable; ///< 端口上下拉配置->无 GpioInitStruct.enPu = GpioPuDisable; ///< 端口上下拉配置->无
GpioInitStruct.enPd = GpioPdDisable; GpioInitStruct.enPd = GpioPdDisable;
GpioInitStruct.enOD = GpioOdDisable; ///< 端口开漏输出配置->开漏输出关闭 GpioInitStruct.enOD = GpioOdDisable; ///< 端口开漏输出配置->开漏输出关闭
GpioInitStruct.enCtrlMode = GpioAHB; ///< 端口输入/输出值寄存器总线控制模式配置->AHB GpioInitStruct.enCtrlMode = GpioAHB; ///< 端口输入/输出值寄存器总线控制模式配置->AHB
GpioInitStruct.bOutputVal = false; GpioInitStruct.bOutputVal = false;
Gpio_Init(RS485_CTRL_PORT, RS485_CTRL_PIN, &GpioInitStruct); Gpio_Init(RS485_CTRL_PORT, RS485_CTRL_PIN, &GpioInitStruct);
@@ -215,9 +215,9 @@ static void GPIOInit(void)
static void WdtInit(void) static void WdtInit(void)
{ {
#if (USE_WDT == 1) #if (USE_WDT == 1)
///< 开启WDT外设时钟 ///< 开启WDT外设时钟
Sysctrl_SetPeripheralGate(SysctrlPeripheralWdt,TRUE); Sysctrl_SetPeripheralGate(SysctrlPeripheralWdt,TRUE);
///< WDT 初始化 ///< WDT 初始化
Wdt_Init(WdtResetEn, WdtT52s4); Wdt_Init(WdtResetEn, WdtT52s4);
Wdt_Start(); Wdt_Start();
#endif #endif