STM32F4xx HAL Driver
master
STM32CubeF4 HAL / LL Drivers API Reference
Toggle main menu visibility
Loading...
Searching...
No Matches
stm32f4xx_hal_gpio.h
Go to the documentation of this file.
1
18
19
/* Define to prevent recursive inclusion -------------------------------------*/
20
#ifndef __STM32F4xx_HAL_GPIO_H
21
#define __STM32F4xx_HAL_GPIO_H
22
23
#ifdef __cplusplus
24
extern
"C"
{
25
#endif
26
27
/* Includes ------------------------------------------------------------------*/
28
#include "
stm32f4xx_hal_def.h
"
29
33
37
38
/* Exported types ------------------------------------------------------------*/
42
46
typedef
struct
47
{
48
uint32_t
Pin
;
50
51
uint32_t
Mode
;
53
54
uint32_t
Pull
;
56
57
uint32_t
Speed
;
59
60
uint32_t
Alternate
;
62
}
GPIO_InitTypeDef
;
63
67
typedef
enum
68
{
69
GPIO_PIN_RESET
= 0,
70
GPIO_PIN_SET
71
}
GPIO_PinState
;
72
75
76
/* Exported constants --------------------------------------------------------*/
77
81
85
#define GPIO_PIN_0 ((uint16_t)0x0001)
/* Pin 0 selected */
86
#define GPIO_PIN_1 ((uint16_t)0x0002)
/* Pin 1 selected */
87
#define GPIO_PIN_2 ((uint16_t)0x0004)
/* Pin 2 selected */
88
#define GPIO_PIN_3 ((uint16_t)0x0008)
/* Pin 3 selected */
89
#define GPIO_PIN_4 ((uint16_t)0x0010)
/* Pin 4 selected */
90
#define GPIO_PIN_5 ((uint16_t)0x0020)
/* Pin 5 selected */
91
#define GPIO_PIN_6 ((uint16_t)0x0040)
/* Pin 6 selected */
92
#define GPIO_PIN_7 ((uint16_t)0x0080)
/* Pin 7 selected */
93
#define GPIO_PIN_8 ((uint16_t)0x0100)
/* Pin 8 selected */
94
#define GPIO_PIN_9 ((uint16_t)0x0200)
/* Pin 9 selected */
95
#define GPIO_PIN_10 ((uint16_t)0x0400)
/* Pin 10 selected */
96
#define GPIO_PIN_11 ((uint16_t)0x0800)
/* Pin 11 selected */
97
#define GPIO_PIN_12 ((uint16_t)0x1000)
/* Pin 12 selected */
98
#define GPIO_PIN_13 ((uint16_t)0x2000)
/* Pin 13 selected */
99
#define GPIO_PIN_14 ((uint16_t)0x4000)
/* Pin 14 selected */
100
#define GPIO_PIN_15 ((uint16_t)0x8000)
/* Pin 15 selected */
101
#define GPIO_PIN_All ((uint16_t)0xFFFF)
/* All pins selected */
102
103
#define GPIO_PIN_MASK 0x0000FFFFU
/* PIN mask for assert test */
107
117
#define GPIO_MODE_INPUT MODE_INPUT
118
#define GPIO_MODE_OUTPUT_PP (MODE_OUTPUT | OUTPUT_PP)
119
#define GPIO_MODE_OUTPUT_OD (MODE_OUTPUT | OUTPUT_OD)
120
#define GPIO_MODE_AF_PP (MODE_AF | OUTPUT_PP)
121
#define GPIO_MODE_AF_OD (MODE_AF | OUTPUT_OD)
122
123
#define GPIO_MODE_ANALOG MODE_ANALOG
124
125
#define GPIO_MODE_IT_RISING (MODE_INPUT | EXTI_IT | TRIGGER_RISING)
126
#define GPIO_MODE_IT_FALLING (MODE_INPUT | EXTI_IT | TRIGGER_FALLING)
127
#define GPIO_MODE_IT_RISING_FALLING (MODE_INPUT | EXTI_IT | TRIGGER_RISING | TRIGGER_FALLING)
128
129
#define GPIO_MODE_EVT_RISING (MODE_INPUT | EXTI_EVT | TRIGGER_RISING)
130
#define GPIO_MODE_EVT_FALLING (MODE_INPUT | EXTI_EVT | TRIGGER_FALLING)
131
#define GPIO_MODE_EVT_RISING_FALLING (MODE_INPUT | EXTI_EVT | TRIGGER_RISING | TRIGGER_FALLING)
132
136
141
#define GPIO_SPEED_FREQ_LOW 0x00000000U
142
#define GPIO_SPEED_FREQ_MEDIUM 0x00000001U
143
#define GPIO_SPEED_FREQ_HIGH 0x00000002U
144
#define GPIO_SPEED_FREQ_VERY_HIGH 0x00000003U
148
153
#define GPIO_NOPULL 0x00000000U
154
#define GPIO_PULLUP 0x00000001U
155
#define GPIO_PULLDOWN 0x00000002U
159
163
164
/* Exported macro ------------------------------------------------------------*/
168
175
#define __HAL_GPIO_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
176
183
#define __HAL_GPIO_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
184
191
#define __HAL_GPIO_EXTI_GET_IT(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
192
199
#define __HAL_GPIO_EXTI_CLEAR_IT(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
200
207
#define __HAL_GPIO_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER |= (__EXTI_LINE__))
211
212
/* Include GPIO HAL Extension module */
213
#include "
stm32f4xx_hal_gpio_ex.h
"
214
215
/* Exported functions --------------------------------------------------------*/
219
223
/* Initialization and de-initialization functions *****************************/
224
void
HAL_GPIO_Init
(GPIO_TypeDef *GPIOx,
GPIO_InitTypeDef
*GPIO_Init);
225
void
HAL_GPIO_DeInit
(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
229
233
/* IO operation functions *****************************************************/
234
GPIO_PinState
HAL_GPIO_ReadPin
(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
235
void
HAL_GPIO_WritePin
(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin,
GPIO_PinState
PinState);
236
void
HAL_GPIO_TogglePin
(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
237
HAL_StatusTypeDef
HAL_GPIO_LockPin
(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
238
void
HAL_GPIO_EXTI_IRQHandler
(uint16_t GPIO_Pin);
239
void
HAL_GPIO_EXTI_Callback
(uint16_t GPIO_Pin);
240
244
248
/* Private types -------------------------------------------------------------*/
249
/* Private variables ---------------------------------------------------------*/
250
/* Private constants ---------------------------------------------------------*/
254
#define GPIO_MODE_Pos 0U
255
#define GPIO_MODE (0x3UL << GPIO_MODE_Pos)
256
#define MODE_INPUT (0x0UL << GPIO_MODE_Pos)
257
#define MODE_OUTPUT (0x1UL << GPIO_MODE_Pos)
258
#define MODE_AF (0x2UL << GPIO_MODE_Pos)
259
#define MODE_ANALOG (0x3UL << GPIO_MODE_Pos)
260
#define OUTPUT_TYPE_Pos 4U
261
#define OUTPUT_TYPE (0x1UL << OUTPUT_TYPE_Pos)
262
#define OUTPUT_PP (0x0UL << OUTPUT_TYPE_Pos)
263
#define OUTPUT_OD (0x1UL << OUTPUT_TYPE_Pos)
264
#define EXTI_MODE_Pos 16U
265
#define EXTI_MODE (0x3UL << EXTI_MODE_Pos)
266
#define EXTI_IT (0x1UL << EXTI_MODE_Pos)
267
#define EXTI_EVT (0x2UL << EXTI_MODE_Pos)
268
#define TRIGGER_MODE_Pos 20U
269
#define TRIGGER_MODE (0x7UL << TRIGGER_MODE_Pos)
270
#define TRIGGER_RISING (0x1UL << TRIGGER_MODE_Pos)
271
#define TRIGGER_FALLING (0x2UL << TRIGGER_MODE_Pos)
272
276
277
/* Private macros ------------------------------------------------------------*/
281
#define IS_GPIO_PIN_ACTION(ACTION) (((ACTION) == GPIO_PIN_RESET) || ((ACTION) == GPIO_PIN_SET))
282
#define IS_GPIO_PIN(PIN) (((((uint32_t)PIN) & GPIO_PIN_MASK ) != 0x00U) && ((((uint32_t)PIN) & ~GPIO_PIN_MASK) == 0x00U))
283
#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_MODE_INPUT) ||\
284
((MODE) == GPIO_MODE_OUTPUT_PP) ||\
285
((MODE) == GPIO_MODE_OUTPUT_OD) ||\
286
((MODE) == GPIO_MODE_AF_PP) ||\
287
((MODE) == GPIO_MODE_AF_OD) ||\
288
((MODE) == GPIO_MODE_IT_RISING) ||\
289
((MODE) == GPIO_MODE_IT_FALLING) ||\
290
((MODE) == GPIO_MODE_IT_RISING_FALLING) ||\
291
((MODE) == GPIO_MODE_EVT_RISING) ||\
292
((MODE) == GPIO_MODE_EVT_FALLING) ||\
293
((MODE) == GPIO_MODE_EVT_RISING_FALLING) ||\
294
((MODE) == GPIO_MODE_ANALOG))
295
#define IS_GPIO_SPEED(SPEED) (((SPEED) == GPIO_SPEED_FREQ_LOW) || ((SPEED) == GPIO_SPEED_FREQ_MEDIUM) || \
296
((SPEED) == GPIO_SPEED_FREQ_HIGH) || ((SPEED) == GPIO_SPEED_FREQ_VERY_HIGH))
297
#define IS_GPIO_PULL(PULL) (((PULL) == GPIO_NOPULL) || ((PULL) == GPIO_PULLUP) || \
298
((PULL) == GPIO_PULLDOWN))
299
302
303
/* Private functions ---------------------------------------------------------*/
307
311
315
319
320
#ifdef __cplusplus
321
}
322
#endif
323
324
#endif
/* __STM32F4xx_HAL_GPIO_H */
325
HAL_GPIO_Init
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
HAL_GPIO_DeInit
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
HAL_GPIO_EXTI_Callback
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
HAL_GPIO_EXTI_IRQHandler
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
HAL_GPIO_LockPin
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
HAL_GPIO_ReadPin
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
HAL_GPIO_WritePin
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
HAL_GPIO_TogglePin
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
GPIO_PinState
GPIO_PinState
GPIO Bit SET and Bit RESET enumeration.
Definition
stm32f4xx_hal_gpio.h:68
GPIO_PIN_SET
@ GPIO_PIN_SET
Definition
stm32f4xx_hal_gpio.h:70
GPIO_PIN_RESET
@ GPIO_PIN_RESET
Definition
stm32f4xx_hal_gpio.h:69
stm32f4xx_hal_def.h
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL_StatusTypeDef
HAL Status structures definition.
Definition
stm32f4xx_hal_def.h:39
stm32f4xx_hal_gpio_ex.h
Header file of GPIO HAL Extension module.
GPIO_InitTypeDef
GPIO Init structure definition.
Definition
stm32f4xx_hal_gpio.h:47
GPIO_InitTypeDef::Mode
uint32_t Mode
Definition
stm32f4xx_hal_gpio.h:51
GPIO_InitTypeDef::Alternate
uint32_t Alternate
Definition
stm32f4xx_hal_gpio.h:60
GPIO_InitTypeDef::Pull
uint32_t Pull
Definition
stm32f4xx_hal_gpio.h:54
GPIO_InitTypeDef::Pin
uint32_t Pin
Definition
stm32f4xx_hal_gpio.h:48
GPIO_InitTypeDef::Speed
uint32_t Speed
Definition
stm32f4xx_hal_gpio.h:57
hal-driver
Inc
stm32f4xx_hal_gpio.h
Generated by
1.17.0