/** ************************************************************************** * @file general_gpio.h * @brief Заголовочный файл для модуля инициализации портов. *************************************************************************/ #ifndef __GPIO_GENERAL_H_ #define __GPIO_GENERAL_H_ #include "mylibs_defs.h" typedef enum { LED_IS_OFF = 0, LED_IS_ON = 1, LED_IS_BLINKING = 2, LED_IS_FADING = 3, }GPIO_LEDStateTypeDef; typedef struct { GPIO_LEDStateTypeDef state; GPIO_TypeDef *LED_Port; uint32_t LED_Pin; uint8_t LED_ActiveLvl; uint32_t LED_Period; uint32_t tickprev; }GPIO_LEDTypeDef; typedef struct { GPIO_TypeDef *Sw_Port; uint32_t Sw_Pin; uint8_t Sw_ActiveLvl; uint32_t Sw_PrevState; uint32_t Sw_FilterDelay; uint32_t Sw_GrandPrevState; uint32_t tickprev; }GPIO_SwitchTypeDef; ///////////////////////////////////////////////////////////////////// ///////////////////////////---FUNCTIONS---/////////////////////////// HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx); /* Инициализировать кнопку (структуру кнопки) */ HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State); /* Считать состоянии кнопки запуска */ uint8_t GPIO_Read_Swich(GPIO_SwitchTypeDef *swstart); /* Инициализировать светодиод (структуру светодиода) */ HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State); /* Включить светодиод */ HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led); /* Выключить светодиод */ HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led); /* Активировать моргание светодиодом */ HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period); /* Активировать моргание светодиодом */ HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period); /* Управление динамическими режимами свечения светодиода */ void GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led); ///////////////////////////---FUNCTIONS---/////////////////////////// #endif // __GPIO_GENERAL_H_