diff --git a/MDK/RTE/_HC32L17X_boot/RTE_Components.h b/MDK/RTE/_HC32L17X_boot/RTE_Components.h
new file mode 100644
index 0000000..20961b8
--- /dev/null
+++ b/MDK/RTE/_HC32L17X_boot/RTE_Components.h
@@ -0,0 +1,21 @@
+
+/*
+ * Auto generated Run-Time-Environment Configuration File
+ * *** Do not modify ! ***
+ *
+ * Project: 'hc32l17x'
+ * Target: 'HC32L17X_boot'
+ */
+
+#ifndef RTE_COMPONENTS_H
+#define RTE_COMPONENTS_H
+
+
+/*
+ * Define the Device Header File:
+ */
+#define CMSIS_device_header "HC32L170JATA.h"
+
+
+
+#endif /* RTE_COMPONENTS_H */
diff --git a/MDK/RTE/_HC32L17X_debug/RTE_Components.h b/MDK/RTE/_HC32L17X_debug/RTE_Components.h
new file mode 100644
index 0000000..727ddf7
--- /dev/null
+++ b/MDK/RTE/_HC32L17X_debug/RTE_Components.h
@@ -0,0 +1,21 @@
+
+/*
+ * Auto generated Run-Time-Environment Configuration File
+ * *** Do not modify ! ***
+ *
+ * Project: 'hc32l17x'
+ * Target: 'HC32L17X_debug'
+ */
+
+#ifndef RTE_COMPONENTS_H
+#define RTE_COMPONENTS_H
+
+
+/*
+ * Define the Device Header File:
+ */
+#define CMSIS_device_header "HC32L170JATA.h"
+
+
+
+#endif /* RTE_COMPONENTS_H */
diff --git a/MDK/hc32l17x.uvoptx b/MDK/hc32l17x.uvoptx
index 0b38e73..3f335ab 100644
--- a/MDK/hc32l17x.uvoptx
+++ b/MDK/hc32l17x.uvoptx
@@ -22,7 +22,7 @@
- HC32L17X
+ HC32L17X_debug
0x4
ARM-ADS
@@ -75,7 +75,7 @@
1
0
- 1
+ 0
255
@@ -103,7 +103,7 @@
1
0
0
- 6
+ 12
@@ -114,7 +114,7 @@
- Segger\JL2CM3.dll
+ BIN\CMSIS_AGDI.dll
@@ -125,7 +125,7 @@
0
CMSIS_AGDI
- -X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K.FLM -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM)
+ -X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO31 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K.FLM -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM)
0
@@ -153,24 +153,7 @@
-
-
- 0
- 0
- 60
- 1
- 15478
- 0
- 0
- 0
- 0
- 0
- 1
- ..\source\Src\main.c
-
- \\hc32l17x\../source/Src/main.c\60
-
-
+
0
@@ -272,6 +255,224 @@
1
BLPara,0x10
+
+ 20
+ 1
+ argv1,0x10
+
+
+
+
+ 1
+ 0
+ 0x1fe00
+ 0
+
+
+
+
+ 2
+ 2
+ 0x20000f35
+ 0
+
+
+
+ 0
+
+
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 2
+ 10000000
+
+
+
+
+
+ HC32L17X_boot
+ 0x4
+ ARM-ADS
+
+ 12000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\output\release\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 12
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ DLGUARM
+
+
+
+ 0
+ CMSIS_AGDI
+ -X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K.FLM -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0FlashHC32L17X_128K -FL020000 -FS00 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM)
+
+
+ 0
+ JL2CM3
+ -U4294967295 -O78 -S1 -ZTIFSpeedSel10000 -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 -FO15 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K.FLM -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM)
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L70 -Z18 -C0 -M0 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+
+
+
+ 0
+ 1
+ App,0x0A
+
+
+ 1
+ 1
+ LocalMAC
+
@@ -309,7 +510,7 @@
0
0
0
- 1
+ 0
0
0
0
@@ -679,7 +880,7 @@
Debug
- 0
+ 1
0
0
0
@@ -690,7 +891,7 @@
0
0
0
- ..\Module\Debug\UartDebug.c
+ ..\Module\LaserTracing_Debug\UartDebug.c
UartDebug.c
0
0
@@ -751,7 +952,7 @@
LORA
- 1
+ 0
0
0
0
@@ -759,7 +960,7 @@
7
31
1
- 0
+ 1
0
0
..\Module\LORA\sx127x.c
diff --git a/MDK/hc32l17x.uvprojx b/MDK/hc32l17x.uvprojx
index 8c21bb1..5e1dee6 100644
--- a/MDK/hc32l17x.uvprojx
+++ b/MDK/hc32l17x.uvprojx
@@ -7,7 +7,598 @@
- HC32L17X
+ HC32L17X_debug
+ 0x4
+ ARM-ADS
+ 6160000::V6.16::ARMCLANG
+ 6160000::V6.16::ARMCLANG
+ 1
+
+
+ HC32L170JATA
+ HDSC
+ HDSC.HC32L17X.1.0.1
+ https://raw.githubusercontent.com/hdscmcu/pack/master/
+ IRAM(0x20000000,0x4000) IROM(0x00000000,0x20000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM))
+ 0
+ $$Device:HC32L170JATA$Device\Include\HC32L170JATA.h
+
+
+
+
+
+
+
+
+
+ $$Device:HC32L170JATA$SVD\HC32L170JATA.sfr
+ 1
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\output\
+ hc32l17x
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\output\release\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 1
+
+ D:\Keil5\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\app.bin .\output\hc32l17x.axf
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+
+ DARMCM1.DLL
+ -pCM0+
+ SARMCM3.DLL
+
+ TARMCM1.DLL
+ -pCM0+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+ "" ()
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ "Cortex-M0+"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 8
+ 1
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x4000
+
+
+ 1
+ 0x0
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x20000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x4000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 3
+ 0
+ 0
+ 1
+ 1
+ 0
+ 4
+ 5
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+ ..\mcu\common;..\source;..\driver\inc;..\source\inc;..\Module\LaserTracing_Debug;..\Module\lsm6dsl;..\Module\MMC5983;..\Module\LORA;..\Module\Imu
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x00000000
+ 0x20000000
+
+ template.sct
+
+
+ --keep=*Handler
+
+
+
+
+
+
+
+ common
+
+
+ startup_hc32l17x.s
+ 2
+ .\startup_hc32l17x.s
+
+
+ system_hc32l17x.c
+ 1
+ ..\mcu\common\system_hc32l17x.c
+
+
+ interrupts_hc32l17x.c
+ 1
+ ..\mcu\common\interrupts_hc32l17x.c
+
+
+
+
+ source
+
+
+ main.c
+ 1
+ ..\source\Src\main.c
+
+
+ bsp.c
+ 1
+ ..\source\src\bsp.c
+
+
+ Algorithm.c
+ 1
+ ..\source\src\Algorithm.c
+
+
+ SGCP.c
+ 1
+ ..\source\src\SGCP.c
+
+
+ Update.c
+ 1
+ ..\source\src\Update.c
+
+
+
+
+ driver
+
+
+ dmac.c
+ 1
+ ..\driver\src\dmac.c
+
+
+ flash.c
+ 1
+ ..\driver\src\flash.c
+
+
+ gpio.c
+ 1
+ ..\driver\src\gpio.c
+
+
+ lpm.c
+ 1
+ ..\driver\src\lpm.c
+
+
+ lpuart.c
+ 1
+ ..\driver\src\lpuart.c
+
+
+ spi.c
+ 1
+ ..\driver\src\spi.c
+
+
+ uart.c
+ 1
+ ..\driver\src\uart.c
+
+
+ wdt.c
+ 1
+ ..\driver\src\wdt.c
+
+
+ ddl.c
+ 1
+ ..\driver\src\ddl.c
+
+
+ sysctrl.c
+ 1
+ ..\driver\src\sysctrl.c
+
+
+ reset.c
+ 1
+ ..\driver\src\reset.c
+
+
+ lptim.c
+ 1
+ ..\driver\src\lptim.c
+
+
+ rtc.c
+ 1
+ ..\driver\src\rtc.c
+
+
+ trim.c
+ 1
+ ..\driver\src\trim.c
+
+
+ i2c.c
+ 1
+ ..\driver\src\i2c.c
+
+
+ bt.c
+ 1
+ ..\driver\src\bt.c
+
+
+ adc.c
+ 1
+ ..\driver\src\adc.c
+
+
+ bgr.c
+ 1
+ ..\driver\src\bgr.c
+
+
+
+
+ Debug
+
+
+ UartDebug.c
+ 1
+ ..\Module\LaserTracing_Debug\UartDebug.c
+
+
+
+
+ LSM6DSL
+
+
+ lsm6dsl_reg.c
+ 1
+ ..\Module\lsm6dsl\lsm6dsl_reg.c
+
+
+ lsm6dsl_app.c
+ 1
+ ..\Module\lsm6dsl\lsm6dsl_app.c
+
+
+
+
+ MMC5893
+
+
+ mmc5983.c
+ 1
+ ..\Module\MMC5983\mmc5983.c
+
+
+
+
+ LORA
+
+
+ sx127x.c
+ 1
+ ..\Module\LORA\sx127x.c
+
+
+
+
+ Imu
+
+
+ Imu.c
+ 1
+ ..\Module\Imu\Imu.c
+
+
+
+
+ ReadMe
+
+
+ ReadMe.txt
+ 5
+ ..\ReadMe.txt
+
+
+
+
+ ::CMSIS
+
+
+
+
+ HC32L17X_boot
0x4
ARM-ADS
6160000::V6.16::ARMCLANG
@@ -330,7 +921,7 @@
1
0
0
- 3
+ 4
5
0
0
@@ -339,9 +930,9 @@
0
-
+ USE_BOOTLOADER,
- ..\mcu\common;..\source;..\driver\inc;..\source\inc;..\Module\Debug;..\Module\lsm6dsl;..\Module\MMC5983;..\Module\LORA;..\Module\Imu
+ ..\mcu\common;..\source;..\driver\inc;..\source\inc;..\Module\LaserTracing_Debug;..\Module\lsm6dsl;..\Module\MMC5983;..\Module\LORA;..\Module\Imu
@@ -389,6 +980,44 @@
startup_hc32l17x.s
2
.\startup_hc32l17x.s
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+
+
+ USE_BOOTLOADER
+
+
+
+
+
+
system_hc32l17x.c
@@ -533,7 +1162,7 @@
UartDebug.c
1
- ..\Module\Debug\UartDebug.c
+ ..\Module\LaserTracing_Debug\UartDebug.c
@@ -605,7 +1234,8 @@
-
+
+
diff --git a/MDK/startup_hc32l17x.s b/MDK/startup_hc32l17x.s
index 75e56af..80b8a43 100644
--- a/MDK/startup_hc32l17x.s
+++ b/MDK/startup_hc32l17x.s
@@ -162,7 +162,11 @@ Reset_Handler PROC
RAMCODE
; reset Vector table address.
LDR R0, =0xE000ED08
- LDR R2, =new_vect_table ;升级时打开
+
+ IF :DEF:USE_BOOTLOADER
+ LDR R2, =new_vect_table ;使用boot程序时
+ ENDIF
+
STR R2, [R0]
LDR R0, =SystemInit
diff --git a/Module/LORA/sx127x.c b/Module/LORA/sx127x.c
index e726f37..9dd68e7 100644
--- a/Module/LORA/sx127x.c
+++ b/Module/LORA/sx127x.c
@@ -1,22 +1,16 @@
#include "sx127x.h"
#include "ddl.h"
-#include "Debug.h"
-#include "spi.h"
-#include "bsp.h"
-
-
-#define LORAChannel 8
-#define LORARegPreamble 10
+#include "UartDebug.h"
#if (LORA_MODULE == SX1278W1)
Sx1276Type_t LoRaPara = {
- .ucChannel = LORAChannel, //4 or 12
+ .ucChannel = 8, //4 or 12
.dwFreqHz = FREQ_CENT,
.ucPower = 20,
.SignalBw = SX1276_BW_250K,
.SpreadFactor = SX1276_SF_512,
.ErrorCoding = SX1276_EC_4_6,
- .RegPreamble = LORARegPreamble,//10 or 16
+ .RegPreamble = 10,//10 or 16
.ucOpModePrev = RFLR_OPMODE_STANDBY,
.bAntSwPrev = RF_ANT_RECEIVER,
.RegBuff = 0,
@@ -70,6 +64,7 @@ void SX1276WriteBuffer(uint8_t ucAddr, uint8_t *pucBuff, uint8_t ucLen)
}
LORA_SPI_NSS_SET();
}
+
void SX1276Write(uint8_t ucAddr, uint8_t ucData)
{
SX1276WriteBuffer(ucAddr, &ucData, 1);
@@ -229,20 +224,18 @@ void SX1276LoRaSetOpMode(Sx1276OpModeType ucOpMode)
LoRaPara.ucOpModePrev = LoRaPara.RegBuff.RegOpMode & ~RFLR_OPMODE_MASK;
if( ucOpMode != LoRaPara.ucOpModePrev){
if(ucOpMode == RFLR_OPMODE_TRANSMITTER){
-
//CLR_LORA_RXEN();
//SET_LORA_TXEN();
-
-
bAntSwStatus = RF_ANT_TRANSMITTER;
}
else if(ucOpMode == RFLR_OPMODE_RECEIVER){
- bAntSwStatus = RF_ANT_RECEIVER;
-
//CLR_LORA_TXEN();
//SET_LORA_RXEN();
+ bAntSwStatus = RF_ANT_RECEIVER;
}
else {
+ //CLR_LORA_TXEN();
+ //CLR_LORA_RXEN();
bAntSwStatus = RF_ANT_CLOSE;
}
if( bAntSwStatus != LoRaPara.bAntSwPrev ){
@@ -305,8 +298,8 @@ void Sx1276LoRaInit(void (*RxCallBack)(uint8_t *rBuff, uint8_t rlen))
LoRaPara.RegBuff.RegLna = RFLR_LNA_GAIN_G1;
SX1276WriteBuffer(REG_LR_OPMODE, (uint8_t*)&(LoRaPara.RegBuff) + 1, SIZE_OF_REGISTERS);
//set the RF settings
- SX1276LoRaWriteChannel(LoRaPara.ucChannel);
- //SX1276LoRaSetFreqHz(LoRaPara.dwFreqHz);
+ //SX1276LoRaWriteChannel(LoRaPara.ucChannel);
+ SX1276LoRaSetFreqHz(LoRaPara.dwFreqHz);
//REG_LR_MODEMCONFIG1
SX1276Read(REG_LR_MODEMCONFIG1, &(LoRaPara.RegBuff.RegModemConfig1));
//SignalBandwidth
@@ -333,8 +326,14 @@ void Sx1276LoRaInit(void (*RxCallBack)(uint8_t *rBuff, uint8_t rlen))
//验证寄存器操作是否成功
SX1276Write(REG_LR_MODEMCONFIG2, LoRaPara.RegBuff.RegModemConfig2);
- LoRaPara.RegBuff.RegModemConfig2 = 0;
- SX1276Read(REG_LR_MODEMCONFIG2, &(LoRaPara.RegBuff.RegModemConfig2));
+ uint8_t Config2 = 0;
+ SX1276Read(REG_LR_MODEMCONFIG2, &Config2);
+ if(LoRaPara.RegBuff.RegModemConfig2 == Config2) {
+ DBG_LOG("Lora OK!\r\n");
+ }
+ else {
+ DBG_LOG("Lora Error!\r\n");
+ }
SX1276LoRaSetSymbTimeout(0x3FF);
LoRaPara.RegBuff.RegPreambleMsb= (LoRaPara.RegPreamble >> 8) & 0x00ff;
@@ -363,7 +362,8 @@ void Sx1276LoRaInit(void (*RxCallBack)(uint8_t *rBuff, uint8_t rlen))
Sx1276LoRaEnterRx();
}
-void IsrSx1276LoRaTxRx(void){
+void IsrSx1276LoRaTxRx(void)
+{
switch (LoRaPara.State){
case SX1276_IDLE:
case SX1276_RX:
@@ -610,4 +610,72 @@ void SX1276LoCalcRssiSnr(int8_t *pswRssi, int8_t *psbSnr)
}
*psbSnr= sbSnr;
}
+int GetSx1276RxRetValue(void)
+{
+ return LoRaPara.RxRet;
+}
+
+void Sx1276RxRetValue(void)
+{
+ LoRaPara.RxRet = -1;
+}
+
+bool LoraSetChannel(uint8_t Channel)
+{
+ if(Channel > 16)
+ return false;
+ LoRaPara.ucChannel = Channel;
+ return true;
+}
+
+bool LoraSetPower(uint8_t Power)
+{
+ if(Power > 20)
+ return false;
+ LoRaPara.ucPower = Power;
+ return true;
+}
+
+bool LoraSetSignalBw(uint8_t SignalBw)
+{
+ if(SignalBw > 9)
+ return false;
+ LoRaPara.SignalBw = (SignalBw << 4);
+ return true;
+}
+
+bool LoraSetSpreadFactor(uint8_t SpreadFactor)
+{
+ if(SpreadFactor < 4 || SpreadFactor > 12)
+ return false;
+ LoRaPara.SpreadFactor = (SpreadFactor << 4);
+ return true;
+}
+
+bool LoraSetErrorCoding(uint8_t ErrorCoding)
+{
+ if(ErrorCoding == 0 || ErrorCoding > 4)
+ return false;
+ LoRaPara.ErrorCoding = ErrorCoding << 1;
+ return true;
+}
+
+bool LoraSetRegPreamble(uint8_t RegPreamble)
+{
+ LoRaPara.RegPreamble = RegPreamble;
+ return true;
+}
+bool LoraSetFreqCent(uint32_t FreqCent)
+{
+ if(FreqCent < 410000000 || FreqCent > 525000000)
+ return false;
+ LoRaPara.dwFreqHz = FreqCent;
+ return true;
+}
+void LoraInit(void)
+{
+ Sx1276LoRaInit(LORA_RxCallBack);
+}
#endif
+
+
diff --git a/Module/LORA/sx127x.h b/Module/LORA/sx127x.h
index 8d1936f..9099cfd 100644
--- a/Module/LORA/sx127x.h
+++ b/Module/LORA/sx127x.h
@@ -2,6 +2,7 @@
#define __SX127X_H
#include "bsp.h"
+#include "main.h"
//Constant values need to compute the RSSI value
#define RSSI_OFFSET_LF -155
@@ -733,6 +734,7 @@ typedef struct {
uint8_t ucTxPacketSize;
uint8_t RxTxBuff[LORA_BUFF_SIZE];
void (*RxCallBack)(uint8_t *rBuff, uint8_t rlen);
+ int RxRet;
}Sx1276Type_t, *pSx1276Type;
//ISM Freq In China
@@ -802,7 +804,6 @@ typedef struct {
//////////////////////////////////////////////////////////////////////
void Sx1276LoRaLoopHandler(void);
void Sx1276LoRaInit(void (*RxCallBack)(uint8_t *rBuff, uint8_t rlen));
-void SX1276LoRaSetFreqHz(uint32_t dwFreqHz);
void Sx1276LoRaSendBuffer(uint8_t* pucBuff, uint8_t ucLen);
uint8_t SX1276LoRaReadChannel(void);
boolean_t SX1276LoRaWriteChannel(uint8_t Channel);
@@ -823,5 +824,14 @@ Sx1276StateType_t SX1276LoRaReadStatus(void);
void SX1276LoCalcRssiSnr(int8_t *pswRssi, int8_t *psbSnr);
void Sx1276LoRaSleep(void);
void Sx1276LoRaWakeup(void);
+
+void LoraInit(void);
+bool LoraSetChannel(uint8_t Channel);
+bool LoraSetPower(uint8_t Power);
+bool LoraSetSignalBw(uint8_t SignalBw);
+bool LoraSetSpreadFactor(uint8_t SpreadFactor);
+bool LoraSetErrorCoding(uint8_t ErrorCoding);
+bool LoraSetRegPreamble(uint8_t RegPreamble);
+bool LoraSetFreqCent(uint32_t FreqCent);
#endif
diff --git a/Module/LaserTracing_Debug b/Module/LaserTracing_Debug
index 10f470d..03e1d00 160000
--- a/Module/LaserTracing_Debug
+++ b/Module/LaserTracing_Debug
@@ -1 +1 @@
-Subproject commit 10f470d79127ef197c1bc45aa45eea81ea46e52d
+Subproject commit 03e1d001ef9f61e5b0bab0942fe242292f54108c
diff --git a/source/inc/SGCP.h b/source/inc/SGCP.h
index 922650f..d2d4a0c 100644
--- a/source/inc/SGCP.h
+++ b/source/inc/SGCP.h
@@ -4,7 +4,7 @@
#define __SGCP_H
#include "bsp.h"
-#define WORK_MODE 1//工作模式选择,0、本机为查询模式,1、本机为上报模式(低功耗)
+#define WORK_MODE 1 //工作模式选择,0、本机为查询模式,1、本机为上报模式(低功耗)
#define SGCP_SELECT 1 //协议选择,0、本机为单个主设备接多个子设备,1、本机为单个主设备不接子设备,2、本机为单个子设备
typedef struct {//网关与主设备固定帧
@@ -173,7 +173,7 @@ typedef enum {
RS485 = 0x02, //0x02 RS485通讯
RS232 = 0x03, //0x03 RS232通讯
CAN = 0x04, //0x04 CAN通讯
- _4G = 0x05, //0x05 _4G通讯
+ CATONE = 0x05, //0x05 _4G通讯
BLE = 0x06, //0x06 BLE通讯
WIFI = 0x07, //0x07 WIFI通讯
UART = 0x08, //0x08 UART通讯
diff --git a/source/inc/Update.h b/source/inc/Update.h
index 6b0a756..b13e004 100644
--- a/source/inc/Update.h
+++ b/source/inc/Update.h
@@ -3,7 +3,6 @@
#include
#include "bsp.h"
-#include "UartDebug.h"
#define APP_START_FLAG 0x55AA5A5A
#define APP_UPDATE_FLAG 0xA5A5AA55
@@ -23,17 +22,6 @@
#define BOOT_PARA_ADDRESS (0x0001FC00)//(FLASH_BASE + BOOT_SIZE)
#define BOOT_PARA_SIZE (FLASH_SECTOR_SIZE)
-
-typedef struct {
- uint32_t AppFlag;
- uint32_t UpdateFlag;
- 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 struct {
@@ -55,11 +43,10 @@ typedef struct {
#define U_DBG_LOG(...) DBG_LOG(__VA_ARGS__)
#define U_DELAY_MS(x) delay_ms(x)
#define U_SYSTEM_TESET() SystemReset()
-#define SAVE_BOOT_PARA(addr) FlashWrite(BOOT_PARA_ADDRESS, addr, sizeof(BLPara) / 4)
-#define READ_BOOT_PARA(addr) FlashRead(BOOT_PARA_ADDRESS, addr, sizeof(BLPara) / 4)
+#define SAVE_BOOT_PARA(addr) SAVE_APP_PARA(addr)
+#define READ_BOOT_PARA(addr) READ_APP_PARA(addr)
//输出接口
void Update(uint8_t *PayLoad);
void UpdateInit(void);
-extern BootPara_t BLPara;
#endif
\ No newline at end of file
diff --git a/source/inc/bsp.h b/source/inc/bsp.h
index 3e52434..920b5c5 100644
--- a/source/inc/bsp.h
+++ b/source/inc/bsp.h
@@ -6,6 +6,7 @@
#include
#include "gpio.h"
#include "spi.h"
+#include "Update.h"
/*模块启用与关闭*/
#define USE_DEBUG 1 //调试串口选择,0、关闭,1、启用
@@ -23,8 +24,7 @@
#define USE_SPI0 1 //SPI1开关,0、关闭,1、启用
#define USE_SPI1 0 //SPI1开关,0、关闭,1、启用
-#define USE_BOOTLOADER 1 //BOOTLOADER开关,0、关闭,1、启用
-#define USE_LORA_CH 0 //0为测试通道
+//#define USE_BOOTLOADER 1 //BOOTLOADER开关,0、关闭,1、启用
//<<---------------------------- MCU -------------------------------->>
//< UART0
@@ -209,12 +209,22 @@
extern float VBAT_8V4;
extern uint8_t VBAT_Percentage;
+typedef struct {
+ uint32_t AppFlag;
+ uint32_t UpdateFlag;
+ 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 struct {
- uint16_t CollectTime; //数据采集时间间隔,设置范围30*N秒,1<=N<=240,(默认5分钟,N=10)
- uint16_t ReportInterval; //上报时间间隔,设置范围,30*N秒,10<=N<=1440(默认20分钟,N=40)
- uint8_t ERInterval; //紧急上报时间间隔,设置范围,30*N秒,2<=N<=10(默认2分钟,N=4)
- uint8_t ERTime; //紧急上报时长,设置范围,30*N秒,20<=N<=240(默认20分钟,N=40)
+ uint16_t CollectTime; //数据采集时间间隔,设置范围30*N秒,1<=N<=240,(默认300秒,N=10)
+ uint16_t ReportInterval; //上报时间间隔,设置范围,30*N秒,10<=N<=1440(默认1200秒,N=40)
+ uint8_t ERInterval; //紧急上报时间间隔,设置范围,30*N秒,2<=N<=10(默认120秒,N=4)
+ uint8_t ERTime; //紧急上报时长,设置范围,30*N秒,20<=N<=240(默认1200秒,N=40)
uint32_t TimeStamp; //网关返回RTC时间戳
}__attribute__((packed))LayoutPara_t,*LayoutPara;//上位机下发的配置参数
@@ -225,16 +235,39 @@ typedef struct {
}__attribute__ ((packed))CalibratePara_t, *CalibratePara;
typedef struct {
+ bool OnOff;
+ uint8_t ucChannel;
+ int8_t ucPower;
+ uint8_t SignalBw;
+ uint8_t SpreadFactor;
+ uint8_t ErrorCoding;
+ uint8_t RegPreamble;
+ uint32_t FreqCent;
+}__attribute__ ((packed))LoraPara_t, *pLoraPara;
+
+typedef struct {
+ bool Enable; //串口使能
+ bool UpgradeEnable;//升级功能使能
+ uint32_t Addr; //本机485地址
+ uint32_t BaudRate;
+}__attribute__((packed))RS485Para_t, *RS485Para;
+
+typedef struct {
+ BootPara_t BLPara;
LayoutPara_t Layout;
CalibratePara_t CaliPara;
- uint32_t RS485Addr; //本机485地址
+ RS485Para_t Rs485Ch1;
+ RS485Para_t Rs485Ch2;
uint32_t FactoryFlag;//出厂标志位
+ LoraPara_t Lora;
}AppPara_T, *pAppPara;
-#define APP_PARA_ADDRESS (0x0001FE00)
-#define SAVE_APP_PARA(addr) FlashWrite(APP_PARA_ADDRESS, addr, sizeof(App.Para) / 4)
-#define READ_APP_PARA(addr) FlashRead(APP_PARA_ADDRESS, addr, sizeof(App.Para) / 4)
+//#define APP_PARA_ADDRESS (0x0001FC00)
+#define SAVE_APP_PARA(addr) FlashWrite(BOOT_PARA_ADDRESS, addr, sizeof(App.Para) / 4)
+#define READ_APP_PARA(addr) FlashRead(BOOT_PARA_ADDRESS, addr, sizeof(App.Para) / 4)
void BspInit(void);
+void LpUart0Init(uint32_t Baud);
+void Uart0Init(uint32_t Baud);
void EnterDeepSleep(void);
void DBGUartSendByte(uint8_t sData);
void DBGUartSend(uint8_t *sData, int sLen);
@@ -269,3 +302,4 @@ void LORAIntDisable(void);
void ACCandMMCIntEnable(void);
void ACCandMMCIntDisable(void);
#endif
+
diff --git a/source/inc/main.h b/source/inc/main.h
index f3c09e7..6abd9c8 100644
--- a/source/inc/main.h
+++ b/source/inc/main.h
@@ -2,8 +2,16 @@
#define __MAIN_H
#include "bsp.h"
#include "UartDebug.h"
+#include "Update.h"
#include "Imu.h"
+#define SOFTWARE_VERSION 12 //软件版本
+#define HARDWARE_VERSION 11 //硬件版本
+
+#define MAIN_DBG_LOG(...) { if(MainDispEn) DBG_LOG(__VA_ARGS__);}
+#define DATA_DBG_LOG(...) { if(DataDispEn) DBG_LOG(__VA_ARGS__);}
+
+
#define X 0
#define Y 1
#define Z 2
@@ -94,14 +102,16 @@ typedef struct {
int16_t Nonce; //随机数
- uint32_t TestTimeCnt;
- uint8_t Tcnt;
bool LaserFlag;
}AppDetect_t;
-
extern AppDetect_t App;
+
+void MainDBGOnOff(bool OnOff);
+void DataDBGOnOff(bool OnOff);
+
#endif
+
diff --git a/source/src/SGCP.c b/source/src/SGCP.c
index a100259..2f196ec 100644
--- a/source/src/SGCP.c
+++ b/source/src/SGCP.c
@@ -758,7 +758,7 @@ static void MasRevHandler(void)
return;
}
- if(SFHeader->Addr != App.Para.RS485Addr)
+ if(SFHeader->Addr != App.Para.Rs485Ch1.Addr)
{
if(SFHeader->Addr != 0x00)
{
@@ -1120,7 +1120,7 @@ static void InRevHandler(void)
}
else
{
- App.Para.RS485Addr = temp;
+ App.Para.Rs485Ch1.Addr = temp;
SAVE_APP_PARA((uint32_t *)&App.Para);
if(SGCP.InStatus == IN_STATUS_IDLE)
{
@@ -2195,7 +2195,7 @@ void InRevLoopHandler(void)
case IN_STATUS_ALTER_485ADDR:{
PrintfMess();
Alter485AddrRes(LocalMAC, true);
- DBG_LOG("Alter RS485Addr:%X\r\n", App.Para.RS485Addr);
+ DBG_LOG("Alter RS485Addr:%X\r\n", App.Para.Rs485Ch1.Addr);
SGCP.InStatus = IN_STATUS_IDLE;
break;}
diff --git a/source/src/Update.c b/source/src/Update.c
index eebee7a..c1f023e 100644
--- a/source/src/Update.c
+++ b/source/src/Update.c
@@ -1,7 +1,7 @@
#include "Update.h"
#include "UartDebug.h"
-
-BootPara_t BLPara;
+#include "main.h"
+#include "bsp.h"
/*****************************************************************************************
* 函数名称: Update
@@ -14,19 +14,19 @@ void Update(uint8_t *PayLoad)
UpDataRequset_t Req;
memcpy(&Req, PayLoad, sizeof(UpDataRequset_t));
- BLPara.AppSize = Req.AppSize;
- BLPara.Crc32Check = Req.AppCrc32;
- BLPara.PackageCnt = Req.PackageNum;
- BLPara.AppFlag = 0;
- BLPara.UpdateFlag = APP_UPDATE_FLAG;
+ App.Para.BLPara.AppSize = Req.AppSize;
+ App.Para.BLPara.Crc32Check = Req.AppCrc32;
+ App.Para.BLPara.PackageCnt = Req.PackageNum;
+ App.Para.BLPara.AppFlag = 0;
+ App.Para.BLPara.UpdateFlag = APP_UPDATE_FLAG;
U_DBG_LOG("Receive upgrade command:\r\n");
- U_DBG_LOG("PackageNum: %d\r\n", BLPara.PackageCnt);
- U_DBG_LOG("AppSize: %d\r\n", BLPara.AppSize);
- U_DBG_LOG("AppCrc32: 0x%08x\r\n", BLPara.Crc32Check);
+ U_DBG_LOG("PackageNum: %d\r\n", App.Para.BLPara.PackageCnt);
+ U_DBG_LOG("AppSize: %d\r\n", App.Para.BLPara.AppSize);
+ U_DBG_LOG("AppCrc32: 0x%08x\r\n", App.Para.BLPara.Crc32Check);
U_DBG_LOG("System Reset!\r\n");
- SAVE_BOOT_PARA((uint32_t *)&BLPara);
+ SAVE_BOOT_PARA((uint32_t *)&App.Para);
U_DELAY_MS(200);
U_SYSTEM_TESET();
}
@@ -39,10 +39,10 @@ void Update(uint8_t *PayLoad)
*****************************************************************************************/
void UpdateInit(void)
{
- READ_BOOT_PARA((uint32_t *)&BLPara);
- if(BLPara.AppFlag != APP_START_FLAG) {
- BLPara.AppFlag = APP_START_FLAG;
- SAVE_BOOT_PARA((uint32_t *)&BLPara);
+ READ_BOOT_PARA((uint32_t *)&App.Para);
+ if(App.Para.BLPara.AppFlag != APP_START_FLAG) {
+ App.Para.BLPara.AppFlag = APP_START_FLAG;
+ SAVE_BOOT_PARA((uint32_t *)&App.Para);
}
}
diff --git a/source/src/bsp.c b/source/src/bsp.c
index a01992c..f41ade4 100644
--- a/source/src/bsp.c
+++ b/source/src/bsp.c
@@ -89,7 +89,7 @@ static void SystemRCLInit(void)
Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE); ///< 使能RCL时钟
}
-static void Uart0Init(void)
+void Uart0Init(uint32_t Baud)
{
stc_gpio_cfg_t stcGpioCfg;
stc_uart_cfg_t stcCfg;
@@ -116,7 +116,7 @@ static void Uart0Init(void)
stcCfg.enMmdorCk = UartMskEven; ///<偶校验
stcCfg.stcBaud.u32Pclk = Sysctrl_GetPClkFreq(); ///> 8) & 0xFF;
- LocalMAC[2] = CommWay;
- LocalMAC[3] = (AddNumber >> 16) & 0xFF;
- LocalMAC[4] = (AddNumber >> 8) & 0xFF;
- LocalMAC[5] = AddNumber & 0xFF;
-
- if(AddNumber <= 0x14)
- {
- SX1276LoRaSetFreqHz(CH1); //Lora棰戠巼:433100000ul + 200000*N
- BLPara.LoraFreq = CH1;
- memcpy(&BLPara.DevMac[0], LocalMAC, 6);
- }
- else if(AddNumber > 0x14 && AddNumber < 0x23)
- {
- SX1276LoRaSetFreqHz(CH2); //Lora棰戠巼:433100000ul + 200000*N
- BLPara.LoraFreq = CH2;
- memcpy(&BLPara.DevMac[0], LocalMAC, 6);
- }
+
+ for(int i = 0; i < 6; i++) {
+ LocalMAC[i] = *((volatile const uint8_t *)(0x00002800 + i));
}
- if(App.Para.FactoryFlag != 0x00)
- {
- App.Para.FactoryFlag = 0x00;
- /*鏍″噯鍙傛暟鍒濆鍖*/
- App.Para.CaliPara.PitchZero = 0;
- App.Para.CaliPara.RollZero = 0;
- App.Para.CaliPara.YawZero = 0;
- }
-#elif
+ memcpy(&App.Para.BLPara.DevMac, &LocalMAC[0], 6);
+ LocalType = (App.Para.BLPara.DevMac[0] | (App.Para.BLPara.DevMac[1] << 8)); //鏈満璁惧绫诲瀷
+ CommWay = App.Para.BLPara.DevMac[2]; //鏈満閫氳鏂瑰紡
+ DeviceSign = App.Para.BLPara.DevMac[3] & 0x80; //鏈満璁惧鏍囧織
+ AddNumber = ((App.Para.BLPara.DevMac[3] << 16)+ (App.Para.BLPara.DevMac[4] << 8) + App.Para.BLPara.DevMac[5]) - 0x800000; //鏈満鍦板潃缂栧彿锛屾暟瀛楅儴鍒嗗搴斿敮涓鍦板潃缂栧彿
+#else
LocalType = LASER_TRACING; //鏈満璁惧绫诲瀷
CommWay = LORA; //鏈満閫氳鏂瑰紡
DeviceSign = MASTER; //鏈満璁惧鏍囧織
AddNumber = 0x000023 + DeviceSign;//鏈満鍦板潃缂栧彿锛屾暟瀛楅儴鍒嗗搴斿敮涓鍦板潃缂栧彿
- SX1276LoRaSetFreqHz(CH0); //Lora棰戠巼:433100000ul + 200000*N
+ App.Para.BLPara.LoraFreq = CH0;
LocalMAC[0] = LocalType & 0xFF; //鏈満MAC鍦板潃
LocalMAC[1] = (LocalType >> 8) & 0xFF;
LocalMAC[2] = CommWay;
@@ -106,8 +100,49 @@ static void AppInit(void)
LocalMAC[5] = AddNumber & 0xFF;
#endif
- if(App.Para.RS485Addr > 16 || App.Para.RS485Addr < 1){
- App.Para.RS485Addr = 1;
+ if(App.Para.FactoryFlag != 0x00)
+ {
+ App.Para.FactoryFlag = 0x00;
+ /*鏍″噯鍙傛暟鍒濆鍖*/
+ App.Para.CaliPara.PitchZero = 0;
+ App.Para.CaliPara.RollZero = 0;
+ App.Para.CaliPara.YawZero = 0;
+
+ App.Para.Rs485Ch1.Enable = true;
+ App.Para.Rs485Ch1.UpgradeEnable = true;
+ App.Para.Rs485Ch1.Addr = 1;
+ App.Para.Rs485Ch1.BaudRate = 9600;
+
+ App.Para.Rs485Ch2.Enable = false;
+ App.Para.Rs485Ch2.UpgradeEnable = false;
+ App.Para.Rs485Ch2.Addr = 1;
+ App.Para.Rs485Ch2.BaudRate = 500000;
+
+ App.Para.Lora.OnOff = true;
+ App.Para.Lora.ucChannel = 8;
+ App.Para.Lora.ucPower = 20;
+ App.Para.Lora.SignalBw = 8;
+ App.Para.Lora.SpreadFactor = 9;
+ App.Para.Lora.ErrorCoding = 2;
+ App.Para.Lora.RegPreamble = 10;
+ App.Para.BLPara.LoraFreq = CH0;
+
+ App.Para.Layout.CollectTime = 10;
+ App.Para.Layout.ReportInterval = 40;
+ App.Para.Layout.ERInterval = 4;
+ App.Para.Layout.ERTime = 40;
+ }
+
+ if(App.Para.BLPara.LoraFreq < 410000000 || App.Para.BLPara.LoraFreq > 525000000)
+ App.Para.BLPara.LoraFreq = CH0;
+ App.Para.Lora.FreqCent = App.Para.BLPara.LoraFreq;
+ SX1276LoRaWriteFreq(App.Para.Lora.FreqCent); //Lora棰戠巼:433100000ul + 200000*N
+
+ if(App.Para.Rs485Ch1.Addr > 16 || App.Para.Rs485Ch1.Addr < 1){
+ App.Para.Rs485Ch1.Addr = 1;
+ }
+ if(App.Para.Rs485Ch2.Addr > 16 || App.Para.Rs485Ch2.Addr < 1){
+ App.Para.Rs485Ch2.Addr = 1;
}
if(App.Para.Layout.CollectTime > 240 || App.Para.Layout.CollectTime < 1) {
App.Para.Layout.CollectTime = 10;
@@ -121,24 +156,12 @@ static void AppInit(void)
if(App.Para.Layout.ERTime > 240 || App.Para.Layout.ERTime < 20) {
App.Para.Layout.ERTime = 40;
}
+ SAVE_APP_PARA((uint32_t *)&App.Para);
- DBG_LOG("\r\n\r\n");
- DBG_LOG("****************************************************\r\n");
- DBG_LOG("** **\r\n");
- DBG_LOG("** LaserTracing **\r\n");
- DBG_LOG("** SoftWare V:%d.%d **\r\n", SOFTWARE_VERSION / 10, SOFTWARE_VERSION % 10);
- DBG_LOG("** HardWare V:%d.%d **\r\n", HARDWARE_VERSION / 10, HARDWARE_VERSION % 10);
- DBG_LOG("** Compile: %s %s **\r\n", __DATE__, __TIME__);
- DBG_LOG("** **\r\n");
- DBG_LOG("****************************************************\r\n\r\n");
- DBG_LOG("RS485Addr: %02X\r\n",App.Para.RS485Addr);
- DBG_LOG("LocalMAC: %02X %02X %02X %02X %02X %02X\r\n",LocalMAC[0], LocalMAC[1], LocalMAC[2], LocalMAC[3], LocalMAC[4], LocalMAC[5]);
- DBG_LOG("CollectTime: %ds\r\n",(App.Para.Layout.CollectTime*30));
- DBG_LOG("LoraFreq: %d\r\n\r\n",BLPara.LoraFreq);
- //09 00 01 00 00 00
+ LpUart0Init(App.Para.Rs485Ch1.BaudRate);//浣庡姛鑰椾覆鍙e垵濮嬪寲
LORAIntEnable();
- Sx1276LoRaInit(LORA_RxCallBack); //< LORA鑺墖鍒濆鍖
+ LoraInit(); //< LORA鑺墖鍒濆鍖
FeedDog();
Lsm6dslInit();
@@ -172,7 +195,7 @@ static void AppInit(void)
App.Login_LPTimer0 = true;
//LPTimer0_ON((App.Nonce % 1200) + 300);//瀹氭椂30s+闅忔満2鍒嗛挓锛屾渶灏忛棿闅100ms
LPTimer0_ON(50);
- DBG_LOG("Login LPTimer0 Open\r\n");
+ MAIN_DBG_LOG("Login LPTimer0 Open\r\n");
App.Upload45S10SCount = 0;
App.UploadFlag = false;
@@ -202,7 +225,7 @@ static void ReadDataLoopHandler(void)
break;}
case READDATA_STATUS_UPDAING:{
- DBG_LOG("<------------ Sensor Data Updaing ------------> \r\n");
+ DATA_DBG_LOG("<------------ Sensor Data Updaing ------------> \r\n");
App.UpdateOk = false;
Lsm6dsStart();
MMC5983Start();
@@ -213,9 +236,9 @@ static void ReadDataLoopHandler(void)
case READDATA_STATUS_WAIT_UPDAING:{
if(App.ReadData1mSDelayCnt <= 0){
if(App.AccRead_EndFlag == false)
- DBG_LOG("Lsm6dsl Get Data TimeOut...\r\n");
+ DATA_DBG_LOG("Lsm6dsl Get Data TimeOut...\r\n");
if(App.MagRead_EndFlag == false)
- DBG_LOG("MMC5983 Get Data TimeOut...\r\n");
+ DATA_DBG_LOG("MMC5983 Get Data TimeOut...\r\n");
App.RDStatus = READDATA_STATUS_DATA_HANDLE;
}
else if(App.MagRead_EndFlag == true
@@ -226,7 +249,7 @@ static void ReadDataLoopHandler(void)
case READDATA_STATUS_DATA_HANDLE:{
if(App.MagRead_EndFlag == false || App.AccRead_EndFlag == false){
- DBG_LOG("<------------ Sensor Data Upda End ------------> \r\n");
+ DATA_DBG_LOG("<------------ Sensor Data Upda End ------------> \r\n");
App.RDStatus = READDATA_STATUS_IDLE;
App.UpdateOk = false;
break;
@@ -238,7 +261,7 @@ static void ReadDataLoopHandler(void)
App.ConvertedData.Pitch = (int16_t)(App.AHRSData.Deg.pitch * 10);
App.ConvertedData.Roll = (int16_t)(App.AHRSData.Deg.roll * 10);
App.ConvertedData.Yaw = (int16_t)(App.AHRSData.Deg.yaw * 10);
- DBG_LOG("PitchAngle:%06.1f, RollAngle:%06.1f, YawAngle:%06.1f\r\n",App.AHRSData.Deg.pitch, App.AHRSData.Deg.roll, App.AHRSData.Deg.yaw);
+ DATA_DBG_LOG("PitchAngle:%06.1f, RollAngle:%06.1f, YawAngle:%06.1f\r\n",App.AHRSData.Deg.pitch, App.AHRSData.Deg.roll, App.AHRSData.Deg.yaw);
if(SGCP.MasterCaliOk == true)
{
@@ -261,9 +284,9 @@ static void ReadDataLoopHandler(void)
{
//瑙﹀彂绱фヤ笂鎶
App.ERFlag = true;
- DBG_LOG("PitchDiff=%04d, PitchDiff=%04d\r\n", PitchDiff,RollDiff);
- DBG_LOG("Start emergency reporting!\r\n");
- DBG_LOG("ERInterval: %dMin, ERTime: %dMin\r\n", App.Para.Layout.ERInterval/2, App.Para.Layout.ERTime/2);
+ DATA_DBG_LOG("PitchDiff=%04d, PitchDiff=%04d\r\n", PitchDiff,RollDiff);
+ DATA_DBG_LOG("Start emergency reporting!\r\n");
+ DATA_DBG_LOG("ERInterval: %dMin, ERTime: %dMin\r\n", App.Para.Layout.ERInterval/2, App.Para.Layout.ERTime/2);
}
}
@@ -284,7 +307,7 @@ static void ReadDataLoopHandler(void)
#endif
memcpy(LocalDataPack, &SGCP.DevData.LaserTracing, sizeof(LocalDataPack));
- DBG_LOG("<------------ Sensor Data Upda End ------------> \r\n");
+ DATA_DBG_LOG("<------------ Sensor Data Upda End ------------> \r\n");
//App.RDStatus = READDATA_STATUS_UPDAING;//鎸佺画宸ヤ綔
App.RDStatus = READDATA_STATUS_IDLE;
App.UpdateOk = true;
@@ -299,7 +322,7 @@ static void AppLoopHandler(void)
break;}
case APP_STATUS_SLEEP:{
- DBG_LOG("Sleep...\r\n\n\n");
+ MAIN_DBG_LOG("Sleep...\r\n\n\n");
FeedDog();
EnterDeepSleep();
FeedDog();
@@ -318,7 +341,7 @@ static void AppLoopHandler(void)
case APP_STATUS_OFF:{
LED_OFF();
App.Status = APP_STATUS_SLEEP;
- DBG_LOG("Power Off...\r\n");
+ MAIN_DBG_LOG("Power Off...\r\n");
break;}
case APP_STATUS_ACTION:{
@@ -355,8 +378,7 @@ static void AppLoopHandler(void)
&& SGCP.TimingAcquisition == false
&& App.TD1mSDelayCnt == 0
&& App.ReadData1mSDelayCnt == 0
- && SGCP.LaserOnOff == false
- && App.TestTimeCnt == 0)
+ && SGCP.LaserOnOff == false)
{
//App.Status = APP_STATUS_ACTION;//鎸佺画宸ヤ綔
App.Status = APP_STATUS_OFF;
@@ -364,7 +386,6 @@ static void AppLoopHandler(void)
else if(App.LaserFlag == true)
{
App.LaserFlag = false;
- App.TestTimeCnt = 3000;
LASER1_ON();
}
break;}
@@ -378,8 +399,8 @@ static void AppLoopHandler(void)
if(App.Login2Min30SCount >= 3)
{
PrintfMess();
- DBG_LOG("Number of registration failures:%d\r\n",App.Login2Min30SCount);
- DBG_LOG("Login RTC Open\r\n");
+ MAIN_DBG_LOG("Number of registration failures:%d\r\n",App.Login2Min30SCount);
+ MAIN_DBG_LOG("Login RTC Open\r\n");
App.Login2Min30SCount = 0;
App.Login30MinCount = 0;
App.Login_RTC = true;//鍚姩30鍒嗘敞鍐屽畾鏃跺櫒
@@ -390,8 +411,8 @@ static void AppLoopHandler(void)
App.Login_LPTimer0 = true;
LPTimer0_ON((App.Nonce % 1200) + 300);//瀹氭椂30s+闅忔満2鍒嗛挓锛屾渶灏忛棿闅100ms
//LPTimer0_ON(100);//瀹氭椂10s
- DBG_LOG("Number of registration failures:%d\r\n",App.Login2Min30SCount);
- DBG_LOG("Login LPTimer0 Open\r\n");
+ MAIN_DBG_LOG("Number of registration failures:%d\r\n",App.Login2Min30SCount);
+ MAIN_DBG_LOG("Login LPTimer0 Open\r\n");
}
}
else if(SGCP.LoginOk == true)
@@ -417,10 +438,10 @@ static void AppLoopHandler(void)
if((App.Upload45S10SCount%3) == 0)
{
PrintfMess();
- DBG_LOG("Number of failed uploads:%d\r\n",App.Upload45S10SCount);
+ MAIN_DBG_LOG("Number of failed uploads:%d\r\n",App.Upload45S10SCount);
if(App.Upload45S10SCount >= 9)
{
- DBG_LOG("Resend registration information.\r\n");
+ MAIN_DBG_LOG("Resend registration information.\r\n");
SGCP.LoginOk = false;
App.LoginFlag = true;
}
@@ -431,8 +452,8 @@ static void AppLoopHandler(void)
App.Upload_LPTimer0 = true;
LPTimer0_ON((App.Nonce % 100) + 45);//闅忔満寤舵椂100~10000ms+45绉掑悗閲嶆柊鍙戦
//LPTimer0_ON(100);//瀹氭椂10s
- DBG_LOG("Number of failed uploads:%d\r\n",App.Upload45S10SCount);
- DBG_LOG("Upload LPTimer0 Open\r\n");
+ MAIN_DBG_LOG("Number of failed uploads:%d\r\n",App.Upload45S10SCount);
+ MAIN_DBG_LOG("Upload LPTimer0 Open\r\n");
}
}
else if(SGCP.UploadOk == true)
@@ -454,14 +475,6 @@ static void App1mSRoutine(void)
if(App.ReadData1mSDelayCnt > 0)
App.ReadData1mSDelayCnt--;
App.FeedDogDlyCnt++;
- if(App.TestTimeCnt > 0)
- {
- App.TestTimeCnt--;
- if(App.TestTimeCnt <= 0)
- {
- LASER1_OFF();
- }
- }
}
void FeedDogHandler(void)
@@ -497,6 +510,17 @@ int32_t main(void)
delay_ms(3000);//涓婄數寤舵椂锛岀瓑寰呬粠璁惧鍚姩
AppInit();
+ DBG_LOG("\r\n\r\n");
+ DBG_LOG("****************************************************\r\n");
+ DBG_LOG("** **\r\n");
+ DBG_LOG("** LaserTracing **\r\n");
+ DBG_LOG("** SoftWare V:%d.%d **\r\n", SOFTWARE_VERSION / 10, SOFTWARE_VERSION % 10);
+ DBG_LOG("** HardWare V:%d.%d **\r\n", HARDWARE_VERSION / 10, HARDWARE_VERSION % 10);
+ DBG_LOG("** Compile: %s %s **\r\n", __DATE__, __TIME__);
+ DBG_LOG("** **\r\n");
+ DBG_LOG("****************************************************\r\n\r\n");
+ //09 00 01 00 00 00
+
while (1) {
#if(USE_VBAT_AD == 1)
ADCLoopHandler();
@@ -530,19 +554,11 @@ void SysTick_CallBack(void)
void RtcIRQHander(void)
{
//SGCP.TimingAcquisition = true; //30S鏇存柊涓娆℃暟鎹
-#if USE_LORA_CH == CH0
- App.Tcnt++;//涓鍒嗛挓寮鍚縺鍏3绉
- if(App.Tcnt >= 2)
- {
- App.Tcnt = 0;
- App.LaserFlag = true;
- }
-#endif
if(SGCP.LoginOk == true)
{
App.RepeLoginCount++;
if(App.RepeLoginCount >= SYSTEM_TIMING_LOGIN){
- DBG_LOG("24h Repetition Login\r\n");
+ MAIN_DBG_LOG("24h Repetition Login\r\n");
App.RepeLoginCount = 0;
SGCP.LoginOk = false;//24h閲嶅娉ㄥ唽
App.Login2Min30SCount = 0;
@@ -550,7 +566,7 @@ void RtcIRQHander(void)
App.Login_RTC = false;//鍏抽棴30鍒嗘敞鍐屽畾鏃跺櫒
LPTimer0_ON((App.Nonce % 1200) + 300);//瀹氭椂30s+闅忔満2鍒嗛挓锛屾渶灏忛棿闅100ms
- DBG_LOG("Login LPTimer0 Open\r\n");
+ MAIN_DBG_LOG("Login LPTimer0 Open\r\n");
}
App.Coll_N++;
@@ -594,12 +610,12 @@ void RtcIRQHander(void)
PrintfMess();
App.Login30MinCount = 0;
App.Login_RTC = false;//鍏抽棴30鍒嗘敞鍐屽畾鏃跺櫒
- DBG_LOG("Login RTC Close\r\n");
+ MAIN_DBG_LOG("Login RTC Close\r\n");
App.Login_LPTimer0 = true;
LPTimer0_ON((App.Nonce % 1200) + 300);//瀹氭椂30s+闅忔満2鍒嗛挓锛屾渶灏忛棿闅100ms
//LPTimer0_ON(100);//瀹氭椂10s
- DBG_LOG("Login LPTimer0 Open\r\n");
+ MAIN_DBG_LOG("Login LPTimer0 Open\r\n");
}
}
}