30 #ifndef __NIIETCM4_GPIO_H
31 #define __NIIETCM4_GPIO_H
56 #define IS_GPIO_QUAL_PERIOD(PERIOD) (((PERIOD) & ((uint32_t)0xFFFFFF00)) == ((uint32_t)0x00))
72 #define IS_GPIO_BIT_ACTION(ACTION) (((ACTION) == Bit_CLEAR) || ((ACTION) == Bit_SET))
88 #define IS_GPIO_DIR(DIR) (((DIR) == GPIO_Dir_In) || \
89 ((DIR) == GPIO_Dir_Out))
105 #define IS_GPIO_MODE(MODE) (((MODE) == GPIO_Mode_IO) || \
106 ((MODE) == GPIO_Mode_AltFunc))
122 #define IS_GPIO_INT_TYPE(INT_TYPE) (((INT_TYPE) == GPIO_IntType_Level) || \
123 ((INT_TYPE) == GPIO_IntType_Edge))
139 #define IS_GPIO_INT_POL(INT_POL) (((INT_POL) == GPIO_IntPol_Neg) || \
140 ((INT_POL) == GPIO_IntPol_Pos))
156 #define IS_GPIO_OUT(OUT) (((OUT) == GPIO_Out_Dis) || \
157 ((OUT) == GPIO_Out_En))
173 #define IS_GPIO_OUT_MODE(OUT_MODE) (((OUT_MODE) == GPIO_OutMode_PP) || \
174 ((OUT_MODE) == GPIO_OutMode_OD))
190 #define IS_GPIO_PULLUP(PULLUP) (((PULLUP) == GPIO_PullUp_Dis) || \
191 ((PULLUP) == GPIO_PullUp_En))
207 #define IS_GPIO_SYNC(SYNC) (((SYNC) == GPIO_Sync_Dis) || \
208 ((SYNC) == GPIO_Sync_En))
224 #define IS_GPIO_QUAL(QUAL) (((QUAL) == GPIO_Qual_Dis) || \
225 ((QUAL) == GPIO_Qual_En))
241 #define IS_GPIO_QUAL_MODE(QUAL_MODE) (((QUAL_MODE) == GPIO_QualMode_3sample) || \
242 ((QUAL_MODE) == GPIO_QualMode_6sample))
259 #define IS_GPIO_ALT_FUNC(ALT_FUNC) (((ALT_FUNC) == GPIO_AltFunc_1) || \
260 ((ALT_FUNC) == GPIO_AltFunc_2) || \
261 ((ALT_FUNC) == GPIO_AltFunc_3))
297 #define GPIO_Pin_0 ((uint32_t)0x0001)
298 #define GPIO_Pin_1 ((uint32_t)0x0002)
299 #define GPIO_Pin_2 ((uint32_t)0x0004)
300 #define GPIO_Pin_3 ((uint32_t)0x0008)
301 #define GPIO_Pin_4 ((uint32_t)0x0010)
302 #define GPIO_Pin_5 ((uint32_t)0x0020)
303 #define GPIO_Pin_6 ((uint32_t)0x0040)
304 #define GPIO_Pin_7 ((uint32_t)0x0080)
305 #define GPIO_Pin_8 ((uint32_t)0x0100)
306 #define GPIO_Pin_9 ((uint32_t)0x0200)
307 #define GPIO_Pin_10 ((uint32_t)0x0400)
308 #define GPIO_Pin_11 ((uint32_t)0x0800)
309 #define GPIO_Pin_12 ((uint32_t)0x1000)
310 #define GPIO_Pin_13 ((uint32_t)0x2000)
311 #define GPIO_Pin_14 ((uint32_t)0x4000)
312 #define GPIO_Pin_15 ((uint32_t)0x8000)
313 #define GPIO_Pin_0_3 ((uint32_t)0x000F)
314 #define GPIO_Pin_3_0 GPIO_Pin_0_3
315 #define GPIO_Pin_4_7 ((uint32_t)0x00F0)
316 #define GPIO_Pin_7_4 GPIO_Pin_4_7
317 #define GPIO_Pin_8_11 ((uint32_t)0x0F00)
318 #define GPIO_Pin_11_8 GPIO_Pin_8_11
319 #define GPIO_Pin_12_15 ((uint32_t)0xF000)
320 #define GPIO_Pin_15_12 GPIO_Pin_12_15
321 #define GPIO_Pin_0_7 ((uint32_t)0x00FF)
322 #define GPIO_Pin_7_0 GPIO_Pin_0_7
323 #define GPIO_Pin_8_15 ((uint32_t)0xFF00)
324 #define GPIO_Pin_15_8 GPIO_Pin_8_15
325 #define GPIO_Pin_All ((uint32_t)0xFFFF)
331 #define IS_GPIO_PIN(PIN) (((PIN) != (uint32_t)0x0000) && (((PIN) & (uint32_t)0xFFFF0000) == ((uint32_t)0x0000)))
338 #define IS_GET_GPIO_PIN(PIN) (((PIN) == GPIO_Pin_0) || \
339 ((PIN) == GPIO_Pin_1) || \
340 ((PIN) == GPIO_Pin_2) || \
341 ((PIN) == GPIO_Pin_3) || \
342 ((PIN) == GPIO_Pin_4) || \
343 ((PIN) == GPIO_Pin_5) || \
344 ((PIN) == GPIO_Pin_6) || \
345 ((PIN) == GPIO_Pin_7) || \
346 ((PIN) == GPIO_Pin_8) || \
347 ((PIN) == GPIO_Pin_9) || \
348 ((PIN) == GPIO_Pin_10) || \
349 ((PIN) == GPIO_Pin_11) || \
350 ((PIN) == GPIO_Pin_12) || \
351 ((PIN) == GPIO_Pin_13) || \
352 ((PIN) == GPIO_Pin_14) || \
353 ((PIN) == GPIO_Pin_15))
397 uint32_t
GPIO_ReadBit(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin);
398 uint32_t
GPIO_Read(NT_GPIO_TypeDef* GPIOx);
399 uint32_t
GPIO_ReadMask(NT_GPIO_TypeDef* GPIOx, uint32_t MaskVal);
410 void GPIO_Write(NT_GPIO_TypeDef* GPIOx, uint32_t PortVal);
411 void GPIO_WriteMask(NT_GPIO_TypeDef* GPIOx, uint32_t MaskVal, uint32_t PortVal);
421 void GPIO_SetBits(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin);
FlagStatus GPIO_ITStatus(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
Чтение флага прерываний выбранных пинов.
void GPIO_WriteBit(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin, BitAction BitVal)
Изменение состояния выбранного пина.
GPIO_PullUp_TypeDef
Включение подтяжки к питанию.
GPIO_AltFunc_TypeDef GPIO_AltFunc
void GPIO_Init(NT_GPIO_TypeDef *GPIOx, GPIO_Init_TypeDef *GPIO_InitStruct)
Инициализирует модуль GPIOx согласно параметрам структуры GPIO_InitStruct.
void GPIO_WriteMask(NT_GPIO_TypeDef *GPIOx, uint32_t MaskVal, uint32_t PortVal)
Изменение состояния выбранного порта GPIOx с использованием маски.
void GPIO_AltFuncConfig(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin, GPIO_AltFunc_TypeDef GPIO_AltFunc)
Осуществляет выбор альтернативной функции вывода GPIOx.
void GPIO_StructInit(GPIO_Init_TypeDef *GPIO_InitStruct)
Заполнение каждого члена структуры GPIO_InitStruct значениями по умолчанию.
void GPIO_ClearBits(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
Сброс выбранных пинов.
uint32_t GPIO_ReadBit(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
Чтение состояния выбранного пина.
GPIO_OutMode_TypeDef GPIO_OutMode
void GPIO_QualConfig(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin, GPIO_QualMode_TypeDef Mode, uint32_t SamplePerod)
Настройка фильтра выбранных пинов.
GPIO_Qual_TypeDef
Включение входного фильтра.
GPIO_IntPol_TypeDef
Выбор полярности события для возникновения прерывания.
GPIO_Out_TypeDef
Включение выхода пина.
void GPIO_ITCmd(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin, FunctionalState State)
Включение прерываний выбранных пинов.
void GPIO_DeInit(NT_GPIO_TypeDef *GPIOx)
Устанавливает все регистры выбранного GPIOx значениями по умолчанию.
GPIO_AltFunc_TypeDef
Выбор номера альтернативной функции пина.
GPIO_Sync_TypeDef
Включение режима пересинхронизации входов через 2 триггера-защелки.
void GPIO_ITConfig(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin, GPIO_IntType_TypeDef IntType, GPIO_IntPol_TypeDef IntPol)
Настройка прерываний пинов.
GPIO_Out_TypeDef GPIO_Out
GPIO_IntType_TypeDef
Выбор события для возникновения прерывания.
Структура инициализации GPIO.
FlagStatus
Описывает возможные состояния флага при запросе его статуса.
GPIO_Mode_TypeDef GPIO_Mode
void GPIO_QualCmd(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin, FunctionalState State)
Включение входных фильтров.
void GPIO_SyncCmd(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin, FunctionalState State)
Включение пересинхронизации входов через 2 триггера-защелки.
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
void GPIO_Write(NT_GPIO_TypeDef *GPIOx, uint32_t PortVal)
Изменение состояния выбранного порта GPIOx.
Это главный заголовочный файл драйвера, обычно включаемый в main.c.
GPIO_OutMode_TypeDef
Выбор режима работы выходных каскадов.
void GPIO_SetBits(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
Установка выбранных пинов.
BitAction
Тип, определяющий состояния бита.
void GPIO_ToggleBits(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
Переключение выбранных пинов в противоположное состояние.
GPIO_PullUp_TypeDef GPIO_PullUp
GPIO_Dir_TypeDef GPIO_Dir
GPIO_QualMode_TypeDef
Выбор режима работы входного фильтра.
GPIO_Mode_TypeDef
Выбор режима работы пина.
void GPIO_ITStatusClear(NT_GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
Очистка флагов прерываний выбранных пинов.
uint32_t GPIO_ReadMask(NT_GPIO_TypeDef *GPIOx, uint32_t MaskVal)
Чтение состояния выбранного порта GPIOx c использованием маски.
GPIO_Dir_TypeDef
Выбор направления работы пина.
uint32_t GPIO_Read(NT_GPIO_TypeDef *GPIOx)
Чтение состояния выбранного порта GPIOx.