You are on page 1of 6

19 Conductor HAL GPIO Genrico

19.1 controlador GPIO Firmware registra estructuras


19.1.1 GPIO_InitTypeDef
GPIO_InitTypeDef se define en el stm32f4xx_hal_gpio.h
Campos de datos
uint32_t Pin
Modo uint32_t
Tire uint32_t
Velocidad uint32_t
alternativo uint32_t
Documentacin Campo
uint32_t GPIO_InitTypeDef :: Pin
Especifica los pines GPIO para ser configurados. Este parmetro
puede ser cualquier valor de
GPIO_pins_define
uint32_t GPIO_InitTypeDef :: Modo
Especifica el modo de funcionamiento para los pasadores
seleccionados. Este parmetro puede ser un valor de
GPIO_mode_define
uint32_t GPIO_InitTypeDef :: Tirar
Especifica el pull-up o activacin tubo de salida deslizable para los
pasadores seleccionados. Este parmetro puede ser un valor de
GPIO_pull_define
uint32_t GPIO_InitTypeDef :: Velocidad
Especifica la velocidad de los pines seleccionados. Este parmetro
puede ser un valor de GPIO_speed_define
uint32_t GPIO_InitTypeDef :: alternativo
perifrico por conectar a los pines seleccionados. Este parmetro
puede ser un valor de GPIO_Alternat_function_selection
19.1.2 GPIO_TypeDef
GPIO_TypeDef se define en el stm32f439xx.h
Campos de datos
__IO uint32_t sus bsquedas
__IO uint32_t OTYPER
__IO OSPEEDR uint32_t
__IO PUPDR uint32_t
__IO IDR uint32_t
__IO ODR uint32_t
__IO BSRRL uint16_t
__IO BSRRH uint16_t
__IO LCKR uint32_t
__IO uint32_t AFR
Documentacin Campo
__IO uint32_t GPIO_TypeDef :: bsquedas,
GPIO modo de puerto de registro, Direccin offset: 0x00
__IO uint32_t GPIO_TypeDef :: OTYPER
tipo de salida de puerto GPIO registro, Direccin offset: 0x04
__IO uint32_t GPIO_TypeDef :: OSPEEDR
GPIO puerto de salida de registro de velocidad, Direccin offset:
0x08
__IO uint32_t GPIO_TypeDef :: PUPDR
GPIO puerto pull-up / pull-down registro, Direccin Offset: 0x0C
__IO uint32_t GPIO_TypeDef :: IDR

GPIO puerto de entrada de registro de datos, Direccin offset:


0x10
__IO uint32_t GPIO_TypeDef :: ODR
GPIO puerto de salida de registro de datos, Direccin offset: 0x14
__IO uint16_t GPIO_TypeDef :: BSRRL
conjunto GPIO poco puerto / reset registro grave, Direccin offset:
0x18
__IO uint16_t GPIO_TypeDef :: BSRRH
conjunto GPIO poco puerto / reset registro agudo, Direccin offset:
0x1A
__IO uint32_t GPIO_TypeDef :: LCKR
GPIO configuracin del puerto de registro de bloqueo, Direccin
offset: 0x1C
__IO uint32_t GPIO_TypeDef :: AFR [2]
GPIO registros de funciones alternas, Direccin offset: 0x20-0x24
19.2 GPIO Firmware Descripcin API conductor
La siguiente seccin se enumeran las diversas funciones de la biblioteca
GPIO.
19.2.1 Cuenta GPIO perifrica
Cada bit de puerto del propsito general de E / S (GPIO) puertos se
pueden configurar individualmente por el software en varios
modos:
El modo de introduccin
Modo analgico
modo de Salida
modo de funcionamiento alternativo
interrupcin / lneas de eventos externos
Durante y justo despus de la reposicin, las funciones
alternativas y lneas de interrupcin externas no estn activos y
los puertos de E / S se configuran en modo flotante de entrada.
Todos los pines GPIO tienen debilidad interna de pull-up y las
resistencias pull-down, que puede ser activado o no.
En la salida o en el modo alternativo, cada IO se puede configurar
en drenaje abierto o push-pull tipo y la velocidad de IO se puede
seleccionar en funcin del valor VDD.
El microcontrolador pins IO estn conectados a los perifricos en
placa / mdulos a travs de un multiplexor que permite slo una
funcin alternativa perifrica (AF) conectado a un pin de IO a la
vez. De esta manera, no puede haber conflicto entre los
perifricos que comparten el mismo pin IO.
Todos los puertos tienen capacidad de alarma / evento externo.
Para utilizar las lneas de interrupcin externa, el puerto debe
estar configurado en el modo de entrada. Todos los pines GPIO
disponibles estn conectados a las 16 lneas de interrupcin /
eventos externos de EXTI0 a EXTI15.
El controlador de interrupciones / evento externo se compone de
hasta 23 detectores de bordes (16 lneas estn conectadas a
GPIO) para la generacin de eventos / solicitudes de interrupcin
(cada lnea de entrada se puede configurar de forma
independiente para seleccionar el tipo (interrumpir o evento) y el
evento de disparo correspondiente (ascendente o descendente o
ambos). Cada lnea tambin se puede enmascarar de forma
independiente.

Funciones de inicializacin de-19.2.5 Inicializacin y


19.2.5.1 HAL_GPIO_Init
Nombre de la funcin void HAL_GPIO_Init (GPIO_TypeDef * GPIOx,
GPIO_InitTypeDef * GPIO_Init)
Funcin Descripcin Inicializa el perifrico GPIOx segn los especificados
parmetros en el GPIO_Init.
Parmetros GPIOx: donde x puede ser (A..K) para seleccionar el GPIO
perifrica para el dispositivo STM32F429X ox puede ser (A..I) para
seleccionar el GPIO perifrica para dispositivos STM32F40XX y STM32F427X.
GPIO_Init: puntero a una estructura GPIO_InitTypeDef que contiene la
informacin de configuracin para el perifrico GPIO especificado.
Volver valores Ninguno.
Notas Ninguno.
19.2.5.2 HAL_GPIO_DeInit
Nombre de la funcin void HAL_GPIO_DeInit (GPIO_TypeDef * GPIOx, uint32_t
GPIO_Pin)
Funcin Descripcin De-inicializa los registros perifricos GPIOx a sus
valores de reposicin por omisin.
Parmetros GPIOx: donde x puede ser (A..K) para seleccionar el GPIO
perifrica para el dispositivo STM32F429X ox puede ser (A..I) para
seleccionar el GPIO perifrica para dispositivos STM32F40XX y STM32F427X.
GPIO_Pin: especifica el bit de puerto que se debe escribir. Este
parmetro puede ser uno de GPIO_PIN_x donde x puede ser (0..15).
Volver valores Ninguno.
Notas Ninguno.
19.2.6 funciones de operacin IO
19.2.6.1 HAL_GPIO_ReadPin
Nombre de la funcin GPIO_PinState HAL_GPIO_ReadPin (GPIO_TypeDef *
GPIOx,
uint16_t GPIO_Pin)
Funcin Descripcin Lee el pin del puerto de entrada especificado.
Parmetros GPIOx: donde x puede ser (A..K) para seleccionar el GPIO
perifrica para el dispositivo STM32F429X ox puede ser (A..I) para
seleccionar el GPIO perifrica para dispositivos STM32F40XX y STM32F427X.
GPIO_Pin: especifica el bit de puerto a leer. Este parmetro puede
ser GPIO_PIN_x donde x puede ser (0..15).
Volver valores El valor pin puerto de entrada.
Notas Ninguno.
19.2.6.2 HAL_GPIO_WritePin
Nombre de la funcin void HAL_GPIO_WritePin (GPIO_TypeDef * GPIOx,
uint16_t
GPIO_Pin, GPIO_PinState PinState)
Funcin Descripcin Establece o borra el bit de puerto de datos
seleccionado.
Parmetros GPIOx: donde x puede ser (A..K) para seleccionar el GPIO
perifrica para el dispositivo STM32F429X ox puede ser (A..I) para
seleccionar el GPIO perifrica para dispositivos STM32F40XX y STM32F427X.
GPIO_Pin: especifica el bit de puerto que se debe escribir. Este
parmetro puede ser uno de GPIO_PIN_x donde x puede ser (0..15).
PinState: especifica el valor a escribir en el bit seleccionado. Este
parmetro puede ser uno de los valores de enumeracin
GPIO_PinState: GPIO_BIT_RESET: para borrar el GPIO_BIT_SET pin del
puerto: para configurar el pin del puerto

Volver valores Ninguno.


Notas Esta funcin utiliza GPIOx_BSRR registro para permitir lectura
atmica / modificar los accesos. De esta manera, no hay riesgo de una IRQ
se produce entre la lectura y la modificar el acceso.
19.2.6.3 HAL_GPIO_TogglePin
Nombre de la funcin void HAL_GPIO_TogglePin (GPIO_TypeDef * GPIOx,
uint16_t
GPIO_Pin)
Funcin Descripcin Alterna los pines GPIO especificados.
Parmetros GPIOx: donde X puede ser (A..K) para seleccionar el GPIO
perifrica para el dispositivo STM32F429X ox puede ser (A..I) para
seleccionar el GPIO perifrica para dispositivos STM32F40XX y STM32F427X.
GPIO_Pin: Especifica los alfileres para activar y desactivar.
Volver valores Ninguno.
Notas Ninguno.
19.2.6.4 HAL_GPIO_EXTI_IRQHandler
Nombre de la funcin void HAL_GPIO_EXTI_IRQHandler (uint16_t GPIO_Pin)
Descripcin de la funcin Esta funcin se encarga de solicitud de
interrupcin EXTI.
Parmetros GPIO_Pin: Especifica los pins conectados lnea EXTI
Volver valores Ninguno.
Notas Ninguno.
19.2.6.5 HAL_GPIO_EXTI_Callback
Nombre de la funcin void HAL_GPIO_EXTI_Callback (uint16_t GPIO_Pin)
Descripcin de la funcin de deteccin de devoluciones de llamada lnea
EXTI.
Parmetros GPIO_Pin: Especifica los pins conectados lnea EXTI
Volver valores Ninguno.
Notas Ninguno.
19.3 GPIO firmware define conductor
19.3.1 GPIO
GPIO
GPIO_Alternat_function_selection
#define: GPIO_AF0_RTC_50Hz ((uint8_t) 0x00)
#define: GPIO_AF0_MCO ((uint8_t) 0x00)
#define: GPIO_AF0_TAMPER ((uint8_t) 0x00)
#define: GPIO_AF0_SWJ ((uint8_t) 0x00)
#define: GPIO_AF0_TRACE ((uint8_t) 0x00)
#define: GPIO_AF1_TIM1 ((uint8_t) 0x01)
#define: GPIO_AF1_TIM2 ((uint8_t) 0x01)
#define: GPIO_AF2_TIM3 ((uint8_t) 0x02)
#define: GPIO_AF2_TIM4 ((uint8_t) 0x02)
#define: GPIO_AF2_TIM5 ((uint8_t) 0x02)
#define: GPIO_AF3_TIM8 ((uint8_t) 0x03)
#define: GPIO_AF3_TIM9 ((uint8_t) 0x03)
#define: GPIO_AF3_TIM10 ((uint8_t) 0x03)
#define: GPIO_AF3_TIM11 ((uint8_t) 0x03)
#define: GPIO_AF4_I2C1 ((uint8_t) 0x04)
#define: GPIO_AF4_I2C2 ((uint8_t) 0x04)
#define: GPIO_AF4_I2C3 ((uint8_t) 0x04)
#define: GPIO_AF5_SPI1 ((uint8_t) 0x05)
#define: GPIO_AF5_SPI2 ((uint8_t) 0x05)
#define: GPIO_AF5_SPI4 ((uint8_t) 0x05)
#define: GPIO_AF5_SPI5 ((uint8_t) 0x05)

#define: GPIO_AF5_SPI6 ((uint8_t) 0x05)


#define: GPIO_AF5_I2S3ext ((uint8_t) 0x05)
#define: GPIO_AF6_SPI3 ((uint8_t) 0x06)
#define: GPIO_AF6_I2S2ext ((uint8_t) 0x06)
#define: GPIO_AF6_SAI1 ((uint8_t) 0x06)
#define: GPIO_AF7_USART1 ((uint8_t) 0x07)
#define: GPIO_AF7_USART2 ((uint8_t) 0x07)
#define: GPIO_AF7_USART3 ((uint8_t) 0x07)
#define: GPIO_AF7_I2S3ext ((uint8_t) 0x07)
#define: GPIO_AF8_UART4 ((uint8_t) 0x08)
#define: GPIO_AF8_UART5 ((uint8_t) 0x08)
#define: GPIO_AF8_USART6 ((uint8_t) 0x08)
#define: GPIO_AF8_UART7 ((uint8_t) 0x08)
#define: GPIO_AF8_UART8 ((uint8_t) 0x08)
#define: GPIO_AF9_CAN1 ((uint8_t) 0x09)
#define: GPIO_AF9_CAN2 ((uint8_t) 0x09)
#define: GPIO_AF9_TIM12 ((uint8_t) 0x09)
#define: GPIO_AF9_TIM13 ((uint8_t) 0x09)
#define: GPIO_AF9_TIM14 ((uint8_t) 0x09)
#define: GPIO_AF9_LTDC ((uint8_t) 0x09)
#define: GPIO_AF10_OTG_FS ((uint8_t) 0xA)
#define: GPIO_AF10_OTG_HS ((uint8_t) 0xA)
#define: GPIO_AF11_ETH ((uint8_t) 0x0B)
#define: GPIO_AF12_FMC ((uint8_t) 0xC)
#define: GPIO_AF12_OTG_HS_FS ((uint8_t) 0xC)
#define: GPIO_AF12_SDIO ((uint8_t) 0xC)
#define: GPIO_AF13_DCMI ((uint8_t) 0x0D)
#define: GPIO_AF14_LTDC ((uint8_t) 0x0E)
#define: GPIO_AF15_EVENTOUT ((uint8_t) 0x0F)
GPIO_mode_define
#define: GPIO_MODE_INPUT ((uint32_t) 0x00000000)
Modo Flotante entrada
#define: GPIO_MODE_OUTPUT_PP ((uint32_t) 0x00000001)
Modo Push Pull Salida
#define: GPIO_MODE_OUTPUT_OD ((uint32_t) 0x00000011)
Modo de drenaje abierto de salida
#define: GPIO_MODE_AF_PP ((uint32_t) 0x00000002)
Funcin Alterna el modo Push Pull
#define: GPIO_MODE_AF_OD ((uint32_t) 0x00000012)
Funcin Alterna modo Drenaje abierto
#define: GPIO_MODE_ANALOG ((uint32_t) 0x00000003)
Modo analgico
#define: GPIO_MODE_IT_RISING ((uint32_t) 0x10110000)
Modo de interrupcin externa con el levantamiento de deteccin de
disparo por flanco
#define: GPIO_MODE_IT_FALLING ((uint32_t) 0x10210000)
Modo de interrupcin externa con cada de deteccin de disparo de
borde
#define: GPIO_MODE_IT_RISING_FALLING ((uint32_t) 0x10310000)
Modo de interrupcin externa con Rising / Falling deteccin de
disparo por flanco
#define: GPIO_MODE_EVT_RISING ((uint32_t) 0x10120000)
Modo evento externo con el levantamiento de deteccin de disparo
por flanco

#define: GPIO_MODE_EVT_FALLING ((uint32_t) 0x10220000)


Modo Evento externo con Falling deteccin de disparo por flanco
#define: GPIO_MODE_EVT_RISING_FALLING ((uint32_t) 0x10320000)
Modo Evento externo con Rising / Falling deteccin de disparo por
flanco
GPIO_pins_define
#define: GPIO_PIN_0 ((uint16_t) 0x0001)
#define: GPIO_PIN_1 ((uint16_t) 0x0002)
#define: GPIO_PIN_2 ((uint16_t) 0x0004)
#define: GPIO_PIN_3 ((uint16_t) 0x0008)
#define: GPIO_PIN_4 ((uint16_t) 0x0010)
#define: GPIO_PIN_5 ((uint16_t) 0x0020)
#define: GPIO_PIN_6 ((uint16_t) 0x0040)
#define: GPIO_PIN_7 ((uint16_t) 0x0080)
#define: GPIO_PIN_8 ((uint16_t) 0x0100)
#define: GPIO_PIN_9 ((uint16_t) 0x0200)
#define: GPIO_PIN_10 ((uint16_t) 0x0400)
#define: GPIO_PIN_11 ((uint16_t) 0x0800)
#define: GPIO_PIN_12 ((uint16_t) 0x1000)
#define: GPIO_PIN_13 ((uint16_t) 0x2000)
#define: GPIO_PIN_14 ((uint16_t) 0x4000)
#define: GPIO_PIN_15 ((uint16_t) 0x8000)
#define: GPIO_PIN_All ((uint16_t) 0xFFFF)
GPIO_pull_define
#define: GPIO_NOPULL ((uint32_t) 0x00000000)
No pull-up o activacin Tire hacia abajo
#define: GPIO_PULLUP ((uint32_t) 0x00000001)
Activacin de pull-up
#define: GPIO_PULLDOWN ((uint32_t) 0x00000002)
Activacin desplegable
GPIO_speed_define
#define: GPIO_SPEED_LOW ((uint32_t) 0x00000000)
Baja velocidad
#define: GPIO_SPEED_MEDIUM ((uint32_t) 0x00000001)
Velocidad media
#define: GPIO_SPEED_FAST ((uint32_t) 0x00000002)
Velocidad rpida
#define: GPIO_SPEED_HIGH ((uint32_t) 0x00000003)
Alta velocidad

You might also like