NIIETCM4 PD  v0.10.5
Драйвер периферии для микроконтроллеров на базе ядра ARM Cortex-M4
 Указатель Структуры данных Файлы Функции Переменные Перечисления Элементы перечислений Группы Страницы
niietcm4_gpio.h
См. документацию.
1 
29 /* Define to prevent recursive inclusion -------------------------------------*/
30 #ifndef __NIIETCM4_GPIO_H
31 #define __NIIETCM4_GPIO_H
32 
33 #ifdef __cplusplus
34  extern "C" {
35 #endif
36 
37 /* Includes ------------------------------------------------------------------*/
38 #include "niietcm4.h"
39 
56 #define IS_GPIO_QUAL_PERIOD(PERIOD) (((PERIOD) & ((uint32_t)0xFFFFFF00)) == ((uint32_t)0x00))
57 
62 typedef enum
63 {
64  Bit_CLEAR = 0,
66 }BitAction;
67 
72 #define IS_GPIO_BIT_ACTION(ACTION) (((ACTION) == Bit_CLEAR) || ((ACTION) == Bit_SET))
73 
78 typedef enum
79 {
83 
88 #define IS_GPIO_DIR(DIR) (((DIR) == GPIO_Dir_In) || \
89  ((DIR) == GPIO_Dir_Out))
90 
95 typedef enum
96 {
100 
105 #define IS_GPIO_MODE(MODE) (((MODE) == GPIO_Mode_IO) || \
106  ((MODE) == GPIO_Mode_AltFunc))
107 
112 typedef enum
113 {
117 
122 #define IS_GPIO_INT_TYPE(INT_TYPE) (((INT_TYPE) == GPIO_IntType_Level) || \
123  ((INT_TYPE) == GPIO_IntType_Edge))
124 
129 typedef enum
130 {
134 
139 #define IS_GPIO_INT_POL(INT_POL) (((INT_POL) == GPIO_IntPol_Neg) || \
140  ((INT_POL) == GPIO_IntPol_Pos))
141 
146 typedef enum
147 {
151 
156 #define IS_GPIO_OUT(OUT) (((OUT) == GPIO_Out_Dis) || \
157  ((OUT) == GPIO_Out_En))
158 
163 typedef enum
164 {
168 
173 #define IS_GPIO_OUT_MODE(OUT_MODE) (((OUT_MODE) == GPIO_OutMode_PP) || \
174  ((OUT_MODE) == GPIO_OutMode_OD))
175 
180 typedef enum
181 {
185 
190 #define IS_GPIO_PULLUP(PULLUP) (((PULLUP) == GPIO_PullUp_Dis) || \
191  ((PULLUP) == GPIO_PullUp_En))
192 
197 typedef enum
198 {
202 
207 #define IS_GPIO_SYNC(SYNC) (((SYNC) == GPIO_Sync_Dis) || \
208  ((SYNC) == GPIO_Sync_En))
209 
214 typedef enum
215 {
219 
224 #define IS_GPIO_QUAL(QUAL) (((QUAL) == GPIO_Qual_Dis) || \
225  ((QUAL) == GPIO_Qual_En))
226 
231 typedef enum
232 {
236 
241 #define IS_GPIO_QUAL_MODE(QUAL_MODE) (((QUAL_MODE) == GPIO_QualMode_3sample) || \
242  ((QUAL_MODE) == GPIO_QualMode_6sample))
243 
248 typedef enum
249 {
254 
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))
262 
267 typedef struct
268 {
269  uint32_t GPIO_Pin;
284 
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)))
332 
333 
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))
354 
371 void GPIO_DeInit(NT_GPIO_TypeDef* GPIOx);
372 void GPIO_Init(NT_GPIO_TypeDef* GPIOx, GPIO_Init_TypeDef* GPIO_InitStruct);
373 void GPIO_StructInit(GPIO_Init_TypeDef* GPIO_InitStruct);
374 
383 void GPIO_AltFuncConfig(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin, GPIO_AltFunc_TypeDef GPIO_AltFunc);
384 
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);
400 
409 void GPIO_WriteBit(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin, BitAction BitVal);
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);
412 
421 void GPIO_SetBits(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin);
422 void GPIO_ClearBits(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin);
423 void GPIO_ToggleBits(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin);
424 
437 void GPIO_QualConfig(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin, GPIO_QualMode_TypeDef Mode, uint32_t SamplePerod);
438 void GPIO_QualCmd(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin, FunctionalState State);
439 void GPIO_SyncCmd(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin, FunctionalState State);
440 
449 void GPIO_ITConfig(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin, GPIO_IntType_TypeDef IntType, GPIO_IntPol_TypeDef IntPol);
450 void GPIO_ITCmd(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin, FunctionalState State);
451 void GPIO_ITStatusClear(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin);
452 FlagStatus GPIO_ITStatus(NT_GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin);
457 #ifdef __cplusplus
458 }
459 #endif
460 
461 #endif /* __NIIETCM4_GPIO_H */
462 
475 /******************* (C) COPYRIGHT 2015 NIIET *****END OF FILE****/
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
Описывает возможные состояния флага при запросе его статуса.
Definition: niietcm4.h:195
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
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
Definition: niietcm4.h:169
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
Тип, определяющий состояния бита.
Definition: niietcm4_gpio.h:62
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
Выбор режима работы пина.
Definition: niietcm4_gpio.h:95
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
Выбор направления работы пина.
Definition: niietcm4_gpio.h:78
uint32_t GPIO_Read(NT_GPIO_TypeDef *GPIOx)
Чтение состояния выбранного порта GPIOx.