23 HAL_StatusTypeDef status = HAL_OK;
26 __HAL_RCC_GPIOA_CLK_ENABLE();
27 else if (GPIOx==GPIOB)
28 __HAL_RCC_GPIOB_CLK_ENABLE();
30 else if (GPIOx==GPIOC)
31 __HAL_RCC_GPIOC_CLK_ENABLE();
34 else if (GPIOx==GPIOD)
35 __HAL_RCC_GPIOD_CLK_ENABLE();
38 else if (GPIOx==GPIOE)
39 __HAL_RCC_GPIOE_CLK_ENABLE();
42 else if (GPIOx==GPIOF)
43 __HAL_RCC_GPIOF_CLK_ENABLE();
46 else if (GPIOx==GPIOF)
47 __HAL_RCC_GPIOH_CLK_ENABLE();
192 uint32_t tickcurrent = HAL_GetTick();
205 static unsigned direction = 0;
207 uint32_t tickcurrent = HAL_GetTick();
215 if(++duty >= LED_PWM_TICKS)
218 duty = LED_PWM_TICKS;
233 int duty_crt = (duty*duty/LED_PWM_TICKS);
234 if(tickcurrent%LED_PWM_TICKS < duty_crt)
Заголовочный файл для модуля инициализации портов.
#define check_null_ptr_1(_p1_)
Проверить указатель на NULL.
#define check_null_ptr_2(_p1_, _p2_)
Проверить два указателя на NULL.
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
Включить тактирование порта GPIO.
HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)
Включить светодиод
HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)
Активировать моргание светодиодом
HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)
Выключить светодиод
HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)
Инициализировать светодиод (структуру светодиода)
void GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led)
Управление динамическими режимами свечения светодиода
HAL_StatusTypeDef GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state)
Выставить светодиод по переменной
HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period)
Активировать моргание светодиодом
@ LED_IS_BLINKING
Моргание светодиодом
@ LED_IS_OFF
Светодиод выключен
@ LED_IS_FADING
Плавное моргание светодиодом
@ LED_IS_ON
Светодиод включен
uint8_t GPIO_Read_Switch(GPIO_SwitchTypeDef *sw)
Считать состоянии кнопки
HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)
Инициализировать кнопку (структуру кнопки)
uint32_t LED_Pin
GPIO пин ножки светодиода
uint32_t LED_Period
Период моргания светодиода
GPIO_TypeDef * LED_Port
GPIO порт ножки светодиода
uint32_t tickprev
Период моргания светодиода
uint8_t LED_ActiveLvl
Активный уровень ножки (при котором светодиод горит)
GPIO_LEDStateTypeDef state
Текущий режим работы светодиода
uint32_t tickprev
Период моргания светодиода
uint32_t Sw_PrevState
Предыдущее состояние кнопки
uint32_t Sw_FilterDelay
Фильтр от дребезга (в мс)
uint8_t Sw_ActiveLvl
Активный уровень ножки (при котором кнопка нажата)
uint32_t Sw_Pin
GPIO пин ножки кнопки
GPIO_TypeDef * Sw_Port
GPIO порт ножки кнопки