From 0c872c41e6354bfc31839f145d907e6ad5718b96 Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Sun, 14 Apr 2024 18:06:12 +0800 Subject: [PATCH] HALL1/HALL2 define --- Core/Inc/main.h | 13 +++++++++++++ Core/Inc/sts_lamp_bar.h | 6 ++++-- Core/Src/gpio.c | 18 +++++++++++++++--- Core/Src/stm32wlxx_it.c | 11 +++++++++-- LoRaWAN/App/lora_app.c | 26 ++++++++++++++++++-------- 5 files changed, 59 insertions(+), 15 deletions(-) diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 3f76371..fe7e2dc 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -73,6 +73,18 @@ void Error_Handler(void); #define PROB1_GPIO_Port GPIOB //#endif +#ifdef STS_O7 + +#define HALL1_Pin GPIO_PIN_0 // DOOR CONTACT +#define HALL1_GPIO_Port GPIOA +#define HALL1_EXTI_IRQn EXTI0_IRQn + +#define HALL2_Pin GPIO_PIN_1 // EMERGENCY BUTTON OR SOS BUTTON +#define HALL2_GPIO_Port GPIOA +#define HALL2_EXTI_IRQn EXTI1_IRQn + + +#else #define BUT1_Pin GPIO_PIN_0 #define BUT1_GPIO_Port GPIOA #define BUT1_EXTI_IRQn EXTI0_IRQn @@ -80,6 +92,7 @@ void Error_Handler(void); #define BUT2_Pin GPIO_PIN_1 #define BUT2_GPIO_Port GPIOA #define BUT2_EXTI_IRQn EXTI1_IRQn +#endif //#if defined(STM32WL55xx) #define BUT3_Pin GPIO_PIN_6 diff --git a/Core/Inc/sts_lamp_bar.h b/Core/Inc/sts_lamp_bar.h index 7911d83..cc1c587 100644 --- a/Core/Inc/sts_lamp_bar.h +++ b/Core/Inc/sts_lamp_bar.h @@ -61,9 +61,11 @@ enum sts_oo_work_mode { STS_OTHER_MODE // ? OTHER MODE }; - +#ifdef STS_O7 +#define STS_Reed_Hall_State HAL_GPIO_ReadPin(HALL1_GPIO_Port, HALL1_Pin) +#else #define STS_Reed_Hall_State HAL_GPIO_ReadPin(BUT1_GPIO_Port, BUT1_Pin) - +#endif //void STS_Lamp_Bar_All(uint8_t lamp_color, uint8_t luminance_level); void STS_Lamp_Bar_Set_Color(uint8_t red, uint8_t green, uint8_t blue ); void STS_Lamp_Bar_Set_RGB(uint8_t red, uint8_t green, uint8_t blue); diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index 3be1d62..8f20b20 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -80,13 +80,18 @@ void MX_GPIO_Init(void) GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(A111_SENSOR_INTERRUPT_GPIO_Port, &GPIO_InitStruct); - +#ifdef STS_O7 + GPIO_InitStruct.Pin = HALL1_Pin|HALL2_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; + GPIO_InitStruct.Pull = GPIO_PULLUP; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); +#else /*Configure GPIO pins : PAPin PAPin */ GPIO_InitStruct.Pin = BUT1_Pin|BUT2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - +#endif /*Configure GPIO pins : PBPin PBPin */ GPIO_InitStruct.Pin = PROB2_Pin|PROB1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; @@ -100,13 +105,20 @@ void MX_GPIO_Init(void) GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(BUT3_GPIO_Port, &GPIO_InitStruct); +#ifdef STS_O7 + HAL_NVIC_SetPriority(HALL1_EXTI_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(HALL1_EXTI_IRQn); + + HAL_NVIC_SetPriority(HALL2_EXTI_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(HALL2_EXTI_IRQn); +#else /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI0_IRQn); HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI1_IRQn); - +#endif HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); diff --git a/Core/Src/stm32wlxx_it.c b/Core/Src/stm32wlxx_it.c index b4f5a8f..5e83781 100644 --- a/Core/Src/stm32wlxx_it.c +++ b/Core/Src/stm32wlxx_it.c @@ -230,10 +230,13 @@ void EXTI0_IRQHandler(void) /* USER CODE BEGIN EXTI0_IRQn 0 */ /* USER CODE END EXTI0_IRQn 0 */ - +#ifdef STS_O7 + HAL_GPIO_EXTI_IRQHandler(HALL1_Pin); + sts_reed_hall_change_flag = 1; +#else HAL_GPIO_EXTI_IRQHandler(BUT1_Pin); sts_reed_hall_change_flag = 1; - +#endif /* USER CODE BEGIN EXTI0_IRQn 1 */ /* USER CODE END EXTI0_IRQn 1 */ @@ -247,7 +250,11 @@ void EXTI1_IRQHandler(void) /* USER CODE BEGIN EXTI1_IRQn 0 */ /* USER CODE END EXTI1_IRQn 0 */ +#ifdef STS_O7 + HAL_GPIO_EXTI_IRQHandler(HALL2_Pin); +#else HAL_GPIO_EXTI_IRQHandler(BUT2_Pin); +#endif /* USER CODE BEGIN EXTI1_IRQn 1 */ /* USER CODE END EXTI1_IRQn 1 */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 06e5c4d..6736a5c 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -627,8 +627,23 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { switch (GPIO_Pin) { - case BUT1_Pin: +#ifdef STS_O7 + case HALL1_Pin: + //sts_reed_hall_ext_int = 1; + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); + /* Note: when "EventType == TX_ON_TIMER" this GPIO is not initialized */ + // if (EventType == TX_ON_EVENT) + { + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + } + break; + case HALL2_Pin: + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + break; + +#else + case BUT1_Pin: //sts_reed_hall_ext_int = 1; UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); //sts_reed_hall_ext_int = 0; @@ -637,19 +652,14 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); } - break; case BUT2_Pin: -#if defined(USE_STM32WLE5) UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), CFG_SEQ_Prio_0); -#endif break; - - case BUT3_Pin: -#if defined(USE_STM32WL55) - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), CFG_SEQ_Prio_0); #endif + case BUT3_Pin: + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), CFG_SEQ_Prio_0); break; default: break;