HALL1/HALL2 define

This commit is contained in:
Yunhorn 2024-04-14 18:06:12 +08:00
parent 838fda6b91
commit 0c872c41e6
5 changed files with 59 additions and 15 deletions

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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 */

View File

@ -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;