diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h index 16d0145..de8c96a 100644 --- a/Core/Inc/sys_conf.h +++ b/Core/Inc/sys_conf.h @@ -47,12 +47,12 @@ extern "C" { /** * @brief Verbose level for all trace logs */ -#define VERBOSE_LEVEL VLEVEL_OFF +#define VERBOSE_LEVEL VLEVEL_M /** * @brief Enable trace logs */ -#define APP_LOG_ENABLED 0 +#define APP_LOG_ENABLED 1 /** * @brief Activate monitoring (probes) of some internal RF signals for debug purpose @@ -75,7 +75,7 @@ extern "C" { * @brief Enable/Disable MCU Debugger pins (dbg serial wires) * @note by HW serial wires are ON by default, need to put them OFF to save power */ -#define DEBUGGER_ENABLED 0 +#define DEBUGGER_ENABLED 1 /** * @brief Disable Low Power mode diff --git a/Core/Inc/utilities_def.h b/Core/Inc/utilities_def.h index bcf7700..f28e621 100644 --- a/Core/Inc/utilities_def.h +++ b/Core/Inc/utilities_def.h @@ -80,7 +80,7 @@ typedef enum CFG_SEQ_Task_LoRaStoreContextEvent, CFG_SEQ_Task_LoRaStopJoinEvent, /* USER CODE BEGIN CFG_SEQ_Task_Id_t */ - + CFG_SEQ_Task_YunhornSTSP1CheckingEvent, /* USER CODE END CFG_SEQ_Task_Id_t */ CFG_SEQ_Task_NBR } CFG_SEQ_Task_Id_t; diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index 8234296..578c5fe 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -55,8 +55,8 @@ void MX_GPIO_Init(void) HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - __HAL_RCC_GPIOB_CLK_ENABLE(); - __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_DISABLE(); + __HAL_RCC_GPIOC_CLK_DISABLE(); GPIO_InitStruct.Pin = BUT1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; diff --git a/Core/Src/stm32_lpm_if.c b/Core/Src/stm32_lpm_if.c index 2b3bfd4..7ca55e6 100644 --- a/Core/Src/stm32_lpm_if.c +++ b/Core/Src/stm32_lpm_if.c @@ -25,7 +25,7 @@ #include "usart_if.h" /* USER CODE BEGIN Includes */ - +#include "gpio.h" /* USER CODE END Includes */ /* External variables ---------------------------------------------------------*/ @@ -96,8 +96,8 @@ void PWR_EnterStopMode(void) /* USER CODE END EnterStopMode_1 */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_All, GPIO_PIN_RESET); //HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_RESET); - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_All, GPIO_PIN_RESET); - HAL_GPIO_DeInit(GPIOA,GPIO_PIN_0); + HAL_GPIO_WritePin(GPIOA, ~GPIO_PIN_0, GPIO_PIN_RESET); + HAL_SuspendTick(); /* Clear Status Flag before entering STOP/STANDBY Mode */ LL_PWR_ClearFlag_C1STOP_C1STB(); @@ -124,7 +124,7 @@ void PWR_ExitStopMode(void) SRAM ctrls, DMAx, DMAMux, AES, RNG, HSEM */ /* Resume not retained USARTx and DMA */ - MX_GPIO_Init(); + //MX_GPIO_Init(); vcom_Resume(); /* USER CODE BEGIN ExitStopMode_2 */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index e584b2d..89495b7 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -215,6 +215,7 @@ static void OnPingSlotPeriodicityChanged(uint8_t pingSlotPeriodicity); static void OnSystemReset(void); /* USER CODE BEGIN PFP */ +static void OnYunhornSTSP1CheckingEvent(void); /** * @brief LED Tx timer callback function @@ -300,7 +301,7 @@ static UTIL_TIMER_Object_t TxTimer; /** * @brief Tx Timer period */ -static UTIL_TIMER_Time_t TxPeriodicity = APP_TX_DUTYCYCLE; +static UTIL_TIMER_Time_t TxPeriodicity = 1000; /** * @brief Join Timer period @@ -404,7 +405,7 @@ void LoRaWAN_Init(void) UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), UTIL_SEQ_RFU, SendTxData); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), UTIL_SEQ_RFU, StoreContext); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), UTIL_SEQ_RFU, StopJoin); - + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSP1CheckingEvent),UTIL_SEQ_RFU, OnYunhornSTSP1CheckingEvent); /* Init Info table used by LmHandler*/ LoraInfo_Init(); @@ -446,9 +447,10 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { case BUT1_Pin: /* Note: when "EventType == TX_ON_TIMER" this GPIO is not initialized */ - //if (EventType == TX_ON_EVENT) + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSP1CheckingEvent), CFG_SEQ_Prio_0); + APP_LOG(TS_OFF,VLEVEL_M,"... BUT1............. \r\n"); + if (EventType == TX_ON_EVENT) { - door_changed_flag =1; UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); } break; @@ -467,7 +469,20 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) /* Private functions ---------------------------------------------------------*/ /* USER CODE BEGIN PrFD */ +static void OnYunhornSTSP1CheckingEvent(void) +{ + + door_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); + APP_LOG(TS_OFF,VLEVEL_M,"\r\nDOOR_STATUS= %u \r\n",door_status); + if (door_status != door_previous_status) + { + door_previous_status = door_status; + door_changed_flag = 1; + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + } + +} /* USER CODE END PrFD */ static void OnRxData(LmHandlerAppData_t *appData, LmHandlerRxParams_t *params) @@ -558,22 +573,6 @@ static void SendTxData(void) sensor_t sensor_data; UTIL_TIMER_Time_t nextTxIn = 0; - door_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); - door_changed_flag = 0; - if (door_status != door_previous_status) - { - door_previous_status = door_status; - } - -#if 0 - if (door_changed_flag ==1 ) - { - door_changed_flag = 0; - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); - UTIL_TIMER_Start(&TxTimer); - } -#endif - if (LmHandlerIsBusy() == false) { #ifdef CAYENNE_LPP @@ -589,10 +588,10 @@ static void SendTxData(void) #endif /* CAYENNE_LPP */ EnvSensors_Read(&sensor_data); - +#if 0 APP_LOG(TS_ON, VLEVEL_M, "VDDA: %d\r\n", batteryLevel); APP_LOG(TS_ON, VLEVEL_M, "temp: %d\r\n", (int16_t)(sensor_data.temperature)); - +#endif AppData.Port = LORAWAN_USER_APP_PORT; #ifdef CAYENNE_LPP @@ -683,34 +682,12 @@ static void SendTxData(void) static void OnTxTimerEvent(void *context) { /* USER CODE BEGIN OnTxTimerEvent_1 */ -#if 0 - door_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); - if (door_status != door_previous_status) - { - door_changed_flag = 1; - door_previous_status = door_status; - } - /* USER CODE END OnTxTimerEvent_1 */ - if (door_changed_flag ==1 ) - { - door_changed_flag = 0; - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); - - /*Wait for next tx slot*/ - UTIL_TIMER_Start(&TxTimer); - } -#endif - MX_GPIO_Init(); - door_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); - //door_changed_flag = 0; - //if (door_status != door_previous_status) - { - door_previous_status = door_status; - - - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); - UTIL_TIMER_Start(&TxTimer); - + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSP1CheckingEvent), CFG_SEQ_Prio_0); + if (door_changed_flag ==1) + { + door_changed_flag =0; + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + UTIL_TIMER_Start(&TxTimer); } /* USER CODE BEGIN OnTxTimerEvent_2 */ diff --git a/STM32CubeIDE/.settings/stm32cubeide.project.prefs b/STM32CubeIDE/.settings/stm32cubeide.project.prefs index 481391e..e052a6a 100644 --- a/STM32CubeIDE/.settings/stm32cubeide.project.prefs +++ b/STM32CubeIDE/.settings/stm32cubeide.project.prefs @@ -1,4 +1,4 @@ -2F62501ED4689FB349E356AB974DBE57=95112E708683D54F6AC1ADC68D917C29 -8DF89ED150041C4CBC7CB9A9CAA90856=95112E708683D54F6AC1ADC68D917C29 -DC22A860405A8BF2F2C095E5B6529F12=708FD40520C1EE5CFD2122309291F653 +2F62501ED4689FB349E356AB974DBE57=E4D60684DA61280BD06389F4CFDF2587 +8DF89ED150041C4CBC7CB9A9CAA90856=E4D60684DA61280BD06389F4CFDF2587 +DC22A860405A8BF2F2C095E5B6529F12=74CD6EB106FB50B767E4FE71225C7638 eclipse.preferences.version=1 diff --git a/STM32CubeIDE/STM32WL55JCIX_FLASH.ld b/STM32CubeIDE/STM32WL55JCIX_FLASH.ld index d45d121..48c962e 100644 --- a/STM32CubeIDE/STM32WL55JCIX_FLASH.ld +++ b/STM32CubeIDE/STM32WL55JCIX_FLASH.ld @@ -91,13 +91,13 @@ SECTIONS . = ALIGN(8); } >FLASH - .ARM.extab : { + .ARM.extab(READONLY) : { . = ALIGN(8); *(.ARM.extab* .gnu.linkonce.armextab.*) . = ALIGN(8); } >FLASH - .ARM : { + .ARM(READONLY) : { . = ALIGN(8); __exidx_start = .; *(.ARM.exidx*) @@ -105,7 +105,7 @@ SECTIONS . = ALIGN(8); } >FLASH - .preinit_array : + .preinit_array(READONLY) : { . = ALIGN(8); PROVIDE_HIDDEN (__preinit_array_start = .); @@ -114,7 +114,7 @@ SECTIONS . = ALIGN(8); } >FLASH - .init_array : + .init_array(READONLY) : { . = ALIGN(8); PROVIDE_HIDDEN (__init_array_start = .); @@ -124,7 +124,7 @@ SECTIONS . = ALIGN(8); } >FLASH - .fini_array : + .fini_array(READONLY) : { . = ALIGN(8); PROVIDE_HIDDEN (__fini_array_start = .);