Added initial LoRaWAN package, updated SDK.

Signed-off-by: Yilin Sun <imi415@imi.moe>
This commit is contained in:
Yilin Sun 2024-05-10 15:03:47 +08:00
parent a728969791
commit fad4b8b672
13 changed files with 189 additions and 78 deletions

View File

@ -44,6 +44,8 @@ set(TARGET_SOURCES
"SDK/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c"
"SDK/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c"
"SDK/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c"
"SDK/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c"
"SDK/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c"
"SDK/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c"
"SDK/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c"
"SDK/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c"

View File

@ -55,8 +55,11 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void TAMP_STAMP_LSECSS_SSRU_IRQHandler(void);
void DMA1_Channel1_IRQHandler(void);
void DMA1_Channel2_IRQHandler(void);
void LPUART1_IRQHandler(void);
void RTC_Alarm_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */

View File

@ -77,7 +77,7 @@ void SystemClock_Config(void)
/** Configure LSE Drive Capability
*/
HAL_PWR_EnableBkUpAccess();
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_MEDIUMHIGH);
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_MEDIUMLOW);
/** Configure the main internal regulator output voltage
*/

View File

@ -59,6 +59,13 @@ void MX_RTC_Init(void)
/* USER CODE END Check_RTC_BKUP */
/** Initialize RTC and set the Time and Date
*/
if (HAL_RTCEx_SetSSRU_IT(&hrtc) != HAL_OK)
{
Error_Handler();
}
/** Enable the Alarm A
*/
sAlarm.BinaryAutoClr = RTC_ALARMSUBSECONDBIN_AUTOCLR_NO;
@ -66,7 +73,7 @@ void MX_RTC_Init(void)
sAlarm.AlarmMask = RTC_ALARMMASK_NONE;
sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDBINMASK_NONE;
sAlarm.Alarm = RTC_ALARM_A;
if (HAL_RTC_SetAlarm(&hrtc, &sAlarm, 0) != HAL_OK)
if (HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, 0) != HAL_OK)
{
Error_Handler();
}
@ -99,6 +106,12 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)
/* RTC clock enable */
__HAL_RCC_RTC_ENABLE();
__HAL_RCC_RTCAPB_CLK_ENABLE();
/* RTC interrupt Init */
HAL_NVIC_SetPriority(TAMP_STAMP_LSECSS_SSRU_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TAMP_STAMP_LSECSS_SSRU_IRQn);
HAL_NVIC_SetPriority(RTC_Alarm_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(RTC_Alarm_IRQn);
/* USER CODE BEGIN RTC_MspInit 1 */
/* USER CODE END RTC_MspInit 1 */
@ -116,6 +129,10 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle)
/* Peripheral clock disable */
__HAL_RCC_RTC_DISABLE();
__HAL_RCC_RTCAPB_CLK_DISABLE();
/* RTC interrupt Deinit */
HAL_NVIC_DisableIRQ(TAMP_STAMP_LSECSS_SSRU_IRQn);
HAL_NVIC_DisableIRQ(RTC_Alarm_IRQn);
/* USER CODE BEGIN RTC_MspDeInit 1 */
/* USER CODE END RTC_MspDeInit 1 */

View File

@ -20,6 +20,7 @@
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */

View File

@ -55,8 +55,10 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
extern DMA_HandleTypeDef hdma_lpuart1_rx;
extern DMA_HandleTypeDef hdma_lpuart1_tx;
extern DMA_HandleTypeDef hdma_lpuart1_rx;
extern UART_HandleTypeDef hlpuart1;
extern RTC_HandleTypeDef hrtc;
/* USER CODE BEGIN EV */
/* USER CODE END EV */
@ -200,6 +202,20 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32wlxx.s). */
/******************************************************************************/
/**
* @brief This function handles RTC Tamper, RTC TimeStamp, LSECSS and RTC SSRU Interrupts.
*/
void TAMP_STAMP_LSECSS_SSRU_IRQHandler(void)
{
/* USER CODE BEGIN TAMP_STAMP_LSECSS_SSRU_IRQn 0 */
/* USER CODE END TAMP_STAMP_LSECSS_SSRU_IRQn 0 */
HAL_RTCEx_SSRUIRQHandler(&hrtc);
/* USER CODE BEGIN TAMP_STAMP_LSECSS_SSRU_IRQn 1 */
/* USER CODE END TAMP_STAMP_LSECSS_SSRU_IRQn 1 */
}
/**
* @brief This function handles DMA1 Channel 1 Interrupt.
*/
@ -208,7 +224,7 @@ void DMA1_Channel1_IRQHandler(void)
/* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
/* USER CODE END DMA1_Channel1_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_lpuart1_rx);
HAL_DMA_IRQHandler(&hdma_lpuart1_tx);
/* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
/* USER CODE END DMA1_Channel1_IRQn 1 */
@ -222,12 +238,40 @@ void DMA1_Channel2_IRQHandler(void)
/* USER CODE BEGIN DMA1_Channel2_IRQn 0 */
/* USER CODE END DMA1_Channel2_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_lpuart1_tx);
HAL_DMA_IRQHandler(&hdma_lpuart1_rx);
/* USER CODE BEGIN DMA1_Channel2_IRQn 1 */
/* USER CODE END DMA1_Channel2_IRQn 1 */
}
/**
* @brief This function handles LPUART1 Interrupt.
*/
void LPUART1_IRQHandler(void)
{
/* USER CODE BEGIN LPUART1_IRQn 0 */
/* USER CODE END LPUART1_IRQn 0 */
HAL_UART_IRQHandler(&hlpuart1);
/* USER CODE BEGIN LPUART1_IRQn 1 */
/* USER CODE END LPUART1_IRQn 1 */
}
/**
* @brief This function handles RTC Alarms (A and B) Interrupt.
*/
void RTC_Alarm_IRQHandler(void)
{
/* USER CODE BEGIN RTC_Alarm_IRQn 0 */
/* USER CODE END RTC_Alarm_IRQn 0 */
HAL_RTC_AlarmIRQHandler(&hrtc);
/* USER CODE BEGIN RTC_Alarm_IRQn 1 */
/* USER CODE END RTC_Alarm_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

View File

@ -74,6 +74,9 @@ static uint8_t SYS_TimerInitialisedFlag = 0;
void SystemApp_Init(void)
{
/* USER CODE BEGIN SystemApp_Init_1 */
__HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_MSI);
UTIL_TIMER_Init();
SYS_TimerInitialisedFlag = 1;
/* USER CODE END SystemApp_Init_1 */

View File

@ -25,8 +25,8 @@
/* USER CODE END 0 */
UART_HandleTypeDef hlpuart1;
DMA_HandleTypeDef hdma_lpuart1_rx;
DMA_HandleTypeDef hdma_lpuart1_tx;
DMA_HandleTypeDef hdma_lpuart1_rx;
/* LPUART1 init function */
@ -41,7 +41,7 @@ void MX_LPUART1_UART_Init(void)
/* USER CODE END LPUART1_Init 1 */
hlpuart1.Instance = LPUART1;
hlpuart1.Init.BaudRate = 115200;
hlpuart1.Init.BaudRate = 9600;
hlpuart1.Init.WordLength = UART_WORDLENGTH_8B;
hlpuart1.Init.StopBits = UART_STOPBITS_1;
hlpuart1.Init.Parity = UART_PARITY_NONE;
@ -50,20 +50,20 @@ void MX_LPUART1_UART_Init(void)
hlpuart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
hlpuart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
hlpuart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
hlpuart1.FifoMode = UART_FIFOMODE_ENABLE;
hlpuart1.FifoMode = UART_FIFOMODE_DISABLE;
if (HAL_UART_Init(&hlpuart1) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold(&hlpuart1, UART_TXFIFO_THRESHOLD_1_4) != HAL_OK)
if (HAL_UARTEx_SetTxFifoThreshold(&hlpuart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold(&hlpuart1, UART_RXFIFO_THRESHOLD_1_4) != HAL_OK)
if (HAL_UARTEx_SetRxFifoThreshold(&hlpuart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_EnableFifoMode(&hlpuart1) != HAL_OK)
if (HAL_UARTEx_DisableFifoMode(&hlpuart1) != HAL_OK)
{
Error_Handler();
}
@ -87,7 +87,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
/** Initializes the peripherals clocks
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LPUART1;
PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1;
PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_LSE;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@ -109,25 +109,8 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* LPUART1 DMA Init */
/* LPUART1_RX Init */
hdma_lpuart1_rx.Instance = DMA1_Channel1;
hdma_lpuart1_rx.Init.Request = DMA_REQUEST_LPUART1_RX;
hdma_lpuart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_lpuart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_lpuart1_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_lpuart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_lpuart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_lpuart1_rx.Init.Mode = DMA_NORMAL;
hdma_lpuart1_rx.Init.Priority = DMA_PRIORITY_LOW;
if (HAL_DMA_Init(&hdma_lpuart1_rx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmarx,hdma_lpuart1_rx);
/* LPUART1_TX Init */
hdma_lpuart1_tx.Instance = DMA1_Channel2;
hdma_lpuart1_tx.Instance = DMA1_Channel1;
hdma_lpuart1_tx.Init.Request = DMA_REQUEST_LPUART1_TX;
hdma_lpuart1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_lpuart1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
@ -143,6 +126,26 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
__HAL_LINKDMA(uartHandle,hdmatx,hdma_lpuart1_tx);
/* LPUART1_RX Init */
hdma_lpuart1_rx.Instance = DMA1_Channel2;
hdma_lpuart1_rx.Init.Request = DMA_REQUEST_LPUART1_RX;
hdma_lpuart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_lpuart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_lpuart1_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_lpuart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_lpuart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_lpuart1_rx.Init.Mode = DMA_NORMAL;
hdma_lpuart1_rx.Init.Priority = DMA_PRIORITY_LOW;
if (HAL_DMA_Init(&hdma_lpuart1_rx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmarx,hdma_lpuart1_rx);
/* LPUART1 interrupt Init */
HAL_NVIC_SetPriority(LPUART1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(LPUART1_IRQn);
/* USER CODE BEGIN LPUART1_MspInit 1 */
/* USER CODE END LPUART1_MspInit 1 */
@ -167,8 +170,11 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
/* LPUART1 DMA DeInit */
HAL_DMA_DeInit(uartHandle->hdmarx);
HAL_DMA_DeInit(uartHandle->hdmatx);
HAL_DMA_DeInit(uartHandle->hdmarx);
/* LPUART1 interrupt Deinit */
HAL_NVIC_DisableIRQ(LPUART1_IRQn);
/* USER CODE BEGIN LPUART1_MspDeInit 1 */
/* USER CODE END LPUART1_MspDeInit 1 */

View File

@ -27,6 +27,8 @@
/* USER CODE BEGIN Includes */
#include "lora_info.h"
/* USER CODE END Includes */
/* External variables ---------------------------------------------------------*/
@ -153,6 +155,20 @@ static LmHandlerCallbacks_t LmHandlerCallbacks =
};
/* USER CODE BEGIN PV */
static LmHandlerParams_t LmHandlerParams =
{
.ActiveRegion = ACTIVE_REGION,
.DefaultClass = LORAWAN_DEFAULT_CLASS,
.AdrEnable = LORAWAN_ADR_STATE,
.IsTxConfirmed = LORAWAN_DEFAULT_CONFIRMED_MSG_STATE,
.TxDatarate = LORAWAN_DEFAULT_DATA_RATE,
.TxPower = LORAWAN_DEFAULT_TX_POWER,
.PingSlotPeriodicity = LORAWAN_DEFAULT_PING_SLOT_PERIODICITY,
.RxBCTimeout = LORAWAN_DEFAULT_CLASS_B_C_RESP_TIMEOUT
};
/* USER CODE END PV */
/* Exported functions ---------------------------------------------------------*/
@ -168,6 +184,8 @@ void LoRaWAN_Init(void)
/* USER CODE BEGIN LoRaWAN_Init_1 */
LoraInfo_Init();
/* USER CODE END LoRaWAN_Init_1 */
/* Init the Lora Stack*/
@ -175,6 +193,9 @@ void LoRaWAN_Init(void)
/* USER CODE BEGIN LoRaWAN_Init_Last */
LmHandlerConfigure(&LmHandlerParams);
LmHandlerJoin(ACTIVATION_TYPE_OTAA, false);
/* USER CODE END LoRaWAN_Init_Last */
}

View File

@ -45,6 +45,16 @@ extern "C" {
/* Exported macros -----------------------------------------------------------*/
/* USER CODE BEGIN EM */
#define ACTIVE_REGION LORAMAC_REGION_CN470
#define LORAWAN_DEFAULT_CLASS CLASS_A
#define LORAWAN_ADR_STATE LORAMAC_HANDLER_ADR_ON
#define LORAWAN_DEFAULT_CONFIRMED_MSG_STATE LORAMAC_HANDLER_UNCONFIRMED_MSG
#define LORAWAN_DEFAULT_DATA_RATE DR_0
#define LORAWAN_DEFAULT_TX_POWER TX_POWER_0
#define LORAWAN_DEFAULT_PING_SLOT_PERIODICITY 4
#define LORAWAN_DEFAULT_CLASS_B_C_RESP_TIMEOUT 8000
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/

View File

@ -5,42 +5,42 @@ ADC.SelectedChannel=ADC_CHANNEL_TEMPSENSOR|ADC_CHANNEL_VREFINT|ADC_CHANNEL_VBAT
CAD.formats=
CAD.pinconfig=
CAD.provider=
Dma.LPUART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.LPUART1_RX.0.EventEnable=DISABLE
Dma.LPUART1_RX.0.Instance=DMA1_Channel1
Dma.LPUART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.LPUART1_RX.0.MemInc=DMA_MINC_ENABLE
Dma.LPUART1_RX.0.Mode=DMA_NORMAL
Dma.LPUART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.LPUART1_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.LPUART1_RX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.LPUART1_RX.0.Priority=DMA_PRIORITY_LOW
Dma.LPUART1_RX.0.RequestNumber=1
Dma.LPUART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.LPUART1_RX.0.SignalID=NONE
Dma.LPUART1_RX.0.SyncEnable=DISABLE
Dma.LPUART1_RX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.LPUART1_RX.0.SyncRequestNumber=1
Dma.LPUART1_RX.0.SyncSignalID=NONE
Dma.LPUART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.LPUART1_TX.1.EventEnable=DISABLE
Dma.LPUART1_TX.1.Instance=DMA1_Channel2
Dma.LPUART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.LPUART1_TX.1.MemInc=DMA_MINC_ENABLE
Dma.LPUART1_TX.1.Mode=DMA_NORMAL
Dma.LPUART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.LPUART1_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.LPUART1_TX.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.LPUART1_TX.1.Priority=DMA_PRIORITY_LOW
Dma.LPUART1_TX.1.RequestNumber=1
Dma.LPUART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.LPUART1_TX.1.SignalID=NONE
Dma.LPUART1_TX.1.SyncEnable=DISABLE
Dma.LPUART1_TX.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.LPUART1_TX.1.SyncRequestNumber=1
Dma.LPUART1_TX.1.SyncSignalID=NONE
Dma.Request0=LPUART1_RX
Dma.Request1=LPUART1_TX
Dma.LPUART1_RX.1.Direction=DMA_PERIPH_TO_MEMORY
Dma.LPUART1_RX.1.EventEnable=DISABLE
Dma.LPUART1_RX.1.Instance=DMA1_Channel2
Dma.LPUART1_RX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.LPUART1_RX.1.MemInc=DMA_MINC_ENABLE
Dma.LPUART1_RX.1.Mode=DMA_NORMAL
Dma.LPUART1_RX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.LPUART1_RX.1.PeriphInc=DMA_PINC_DISABLE
Dma.LPUART1_RX.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.LPUART1_RX.1.Priority=DMA_PRIORITY_LOW
Dma.LPUART1_RX.1.RequestNumber=1
Dma.LPUART1_RX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.LPUART1_RX.1.SignalID=NONE
Dma.LPUART1_RX.1.SyncEnable=DISABLE
Dma.LPUART1_RX.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.LPUART1_RX.1.SyncRequestNumber=1
Dma.LPUART1_RX.1.SyncSignalID=NONE
Dma.LPUART1_TX.0.Direction=DMA_MEMORY_TO_PERIPH
Dma.LPUART1_TX.0.EventEnable=DISABLE
Dma.LPUART1_TX.0.Instance=DMA1_Channel1
Dma.LPUART1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.LPUART1_TX.0.MemInc=DMA_MINC_ENABLE
Dma.LPUART1_TX.0.Mode=DMA_NORMAL
Dma.LPUART1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.LPUART1_TX.0.PeriphInc=DMA_PINC_DISABLE
Dma.LPUART1_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.LPUART1_TX.0.Priority=DMA_PRIORITY_LOW
Dma.LPUART1_TX.0.RequestNumber=1
Dma.LPUART1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.LPUART1_TX.0.SignalID=NONE
Dma.LPUART1_TX.0.SyncEnable=DISABLE
Dma.LPUART1_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.LPUART1_TX.0.SyncRequestNumber=1
Dma.LPUART1_TX.0.SyncSignalID=NONE
Dma.Request0=LPUART1_TX
Dma.Request1=LPUART1_RX
Dma.RequestsNb=2
File.Version=6
GPIO.groupedBy=Group By Peripherals
@ -57,11 +57,8 @@ LORAWAN.USE_ADC=true
LORAWAN.USE_LPM=true
LORAWAN.USE_RTC=true
LORAWAN.USE_UART=true
LPUART1.BaudRate=115200
LPUART1.FIFOMode=UART_FIFOMODE_ENABLE
LPUART1.IPParameters=BaudRate,FIFOMode,TXFIFOThreshold,RXFIFOThreshold
LPUART1.RXFIFOThreshold=UART_RXFIFO_THRESHOLD_1_4
LPUART1.TXFIFOThreshold=UART_TXFIFO_THRESHOLD_1_4
LPUART1.BaudRate=9600
LPUART1.IPParameters=BaudRate
LoRaWAN.BSP.number=3
LoRaWAN0.BSP.STBoard=false
LoRaWAN0.BSP.api=Unknown
@ -139,20 +136,23 @@ Mcu.PinsNb=22
Mcu.ThirdPartyNb=0
Mcu.UserConstants=RTC_PREDIV_A,((1<<(15-RTC_N_PREDIV_S))-1);RTC_N_PREDIV_S,10;RTC_PREDIV_S,((1<<RTC_N_PREDIV_S)-1)
Mcu.UserName=STM32WLE5CBUx
MxCube.Version=6.8.1
MxDb.Version=DB.6.0.81
MxCube.Version=6.9.2
MxDb.Version=DB.6.0.92
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.DMA1_Channel1_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Channel2_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.LPUART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.RTC_Alarm_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
NVIC.TAMP_STAMP_LSECSS_SSRU_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
OSC_IN.Mode=HSE-External-Oscillator
OSC_IN.Signal=RCC_OSC_IN
@ -207,6 +207,8 @@ ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=Makefile
ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_ADC_Init-ADC-true-HAL-false,6-MX_LPUART1_UART_Init-LPUART1-true-HAL-false,7-MX_SUBGHZ_Init-SUBGHZ-true-HAL-false,8-MX_LoRaWAN_Init-LORAWAN-false-HAL-false
RCC.AHBFreq_Value=48000000
@ -227,13 +229,14 @@ RCC.I2C1Freq_Value=48000000
RCC.I2C2Freq_Value=48000000
RCC.I2C3Freq_Value=48000000
RCC.I2S2Freq_Value=16000000
RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,CortexFreq_Value,EnbaleCSS,FCLKCortexFreq_Value,FamilyName,HCLK3Freq_Value,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2S2Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_Drive_Capability,LSE_VALUE,MCO1PinFreq_Value,MSIClockRange,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLR,PLLRCLKFreq_Value,PLLSourceVirtual,PREFETCH_ENABLE,PWRFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USART2Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,CortexFreq_Value,EnbaleCSS,FCLKCortexFreq_Value,FamilyName,HCLK3Freq_Value,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2S2Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPUART1CLockSelection,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_Drive_Capability,LSE_VALUE,MCO1PinFreq_Value,MSIClockRange,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLR,PLLRCLKFreq_Value,PLLSourceVirtual,PREFETCH_ENABLE,PWRFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USART2Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
RCC.LPTIM1Freq_Value=48000000
RCC.LPTIM2Freq_Value=48000000
RCC.LPTIM3Freq_Value=48000000
RCC.LPUART1Freq_Value=48000000
RCC.LPUART1CLockSelection=RCC_LPUART1CLKSOURCE_LSE
RCC.LPUART1Freq_Value=32768
RCC.LSCOPinFreq_Value=32000
RCC.LSE_Drive_Capability=RCC_LSEDRIVE_MEDIUMHIGH
RCC.LSE_Drive_Capability=RCC_LSEDRIVE_MEDIUMLOW
RCC.LSE_VALUE=32768
RCC.MCO1PinFreq_Value=48000000
RCC.MSIClockRange=RCC_MSIRANGE_7

2
SDK

@ -1 +1 @@
Subproject commit 5b47f70ce5f9016b92a8bedb037d00d86b7c8080
Subproject commit 4dd35d67fe864e6de85b69e11114d617df5b883e

View File

@ -4,6 +4,7 @@
#include "main.h"
#include "gpio.h"
#include "rtc.h"
#include "app_lorawan.h"
extern void SystemClock_Config(void);