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