89 lines
2.9 KiB
C
89 lines
2.9 KiB
C
/**
|
|
**************************************************************************
|
|
* @file general_gpio.h
|
|
* @brief Заголовочный файл для модуля инициализации портов.
|
|
*************************************************************************/
|
|
#ifndef __GPIO_GENERAL_H_
|
|
#define __GPIO_GENERAL_H_
|
|
|
|
#include "mylibs_defs.h"
|
|
|
|
|
|
#define SPI_Alternate_Mapping(INSTANCE) ((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \
|
|
(((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \
|
|
(((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \
|
|
(((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \
|
|
(0))
|
|
|
|
|
|
#define TIM_Alternate_Mapping(INSTANCE) ((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \
|
|
(((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \
|
|
(((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \
|
|
(((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \
|
|
(0))
|
|
|
|
|
|
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;
|
|
|
|
uint32_t LED_Period;
|
|
uint32_t tickprev;
|
|
}GPIO_LEDTypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
GPIO_TypeDef *Sw_Port;
|
|
uint32_t Sw_Pin;
|
|
|
|
uint32_t Sw_PrevState;
|
|
uint32_t Sw_FilterDelay;
|
|
uint32_t tickprev;
|
|
}GPIO_SwitchTypeDef;
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
///////////////////////////---FUNCTIONS---///////////////////////////
|
|
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx);
|
|
|
|
/* Считать состоянии кнопки запуска */
|
|
uint8_t GPIO_Read_Swich(GPIO_SwitchTypeDef *swstart);
|
|
/* Включить светодиод */
|
|
void GPIO_LED_On(GPIO_LEDTypeDef *led);
|
|
/* Выключить светодиод */
|
|
void GPIO_LED_Off(GPIO_LEDTypeDef *led);
|
|
/* Активировать моргание светодиодом */
|
|
void GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period);
|
|
/* Моргание светодиодом */
|
|
void GPIO_LED_Blink_Handle(GPIO_LEDTypeDef *led);
|
|
///////////////////////////---FUNCTIONS---///////////////////////////
|
|
|
|
|
|
#ifndef LED_ON
|
|
#define LED_ON 0
|
|
#endif
|
|
|
|
#ifndef LED_0FF
|
|
#define LED_OFF 1
|
|
#endif
|
|
|
|
#ifndef SW_ON
|
|
#define SW_ON 0
|
|
#endif
|
|
|
|
#ifndef SW_0FF
|
|
#define SW_OFF 1
|
|
#endif
|
|
|
|
#endif // __GPIO_GENERAL_H_
|