ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【STM32】01.GPIO开发

【STM32】01.GPIO开发 一、GPIO概述GPIOGeneral Purpose Input/Output通用输入 / 输出口是 STM32 等单片机最基础、最常用的外设之一用于控制GPIO引脚其引脚可配置为 8 种工作模式输出类模式4 种推挽输出Push-Pull Output开漏输出Open-Drain Output复用推挽输出Alternate Function Push-Pull复用开漏输出Alternate Function Open-Drain输入类模式4 种浮空输入Floating Input上拉输入Pull-up Input下拉输入Pull-down Input模拟输入Analog Input我们要设置 GPIO 引脚的模式不能盲目设置要结合外设的实际工作需求、电路连接方式与信号传输特性综合考量。二、GPIO 的模式我们可以通过分析《STM32F10xxx参考手册中文版.pdf》第 176 页 GPIO 引脚内部基本结构图深入了解 GPIO 的工作模式。1. 推挽输出Push-Pull Output特点强驱动能力能输出高电平和低电平无外部电路不需要上拉电阻速度快上升下降沿陡峭2. 开漏输出Open-Drain Output特点电平转换可连接不同电压的设备需要上拉必须外部上拉电阻才能输出高电平速度较慢上升沿依赖上拉电阻3. 复用推挽输出Alternate Function Push-Pull特点强驱动能力能输出高电平和低电平无外部电路不需要上拉电阻速度快上升下降沿陡峭由非GPIO外设控制引脚在STM32中一个物理引脚除了作为通用的输入/输出GPIO之外还可以被配置为内部外设如USART、SPI、I2C等的连接引脚这被称为复用功能。4. 复用开漏输出Alternate Function Open-Drain特点电平转换可连接不同电压的设备需要上拉必须外部上拉电阻才能输出高电平速度较慢上升沿依赖上拉电阻由非GPIO外设控制引脚5. 上拉输入Input Pull-Up特点默认高电平 引脚悬空时自动被拉到高电平稳定状态确保引脚有确定的逻辑电平6. 下拉输入Input Pull-Down特点默认低电平 引脚悬空时自动被拉到低电平稳定状态确保引脚有确定的逻辑电平7. 浮空输入Floating Input特点引脚悬空时电平不确定随机高低完全依赖外部电平由外部电路100%控制高阻抗几乎不对外部电路产生影响8.模拟输入Analog Input三、GPIO常用函数接口、通用操作hal_gpio.c/h1. HAL_GPIO_WritePinvoid HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);功能设置指定GPIO引脚输出高/低电平参数GPIOxGPIO端口基地址如GPIOA/GPIOB/GPIOCGPIO_Pin引脚号GPIO_PIN_0 ~ GPIO_PIN_15支持位或GPIO_PIN_0|GPIO_PIN_1PinState引脚状态GPIO_PIN_SET高电平 / GPIO_PIN_RESET低电平返回值无2. HAL_GPIO_ReadPinGPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);功能读取GPIO引脚当前电平输入/输出模式均可读参数GPIOx端口基地址GPIO_Pin目标引脚返回值GPIO_PIN_SET(高) / GPIO_PIN_RESET(低)3. HAL_GPIO_TogglePinvoid HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);功能翻转引脚电平高变低、低变高参数GPIOx、GPIO_Pin 同上返回值无4. HAL_GPIO_Initvoid HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);功能初始化GPIO模式输入/输出/复用/模拟、上下拉、速度参数GPIOx端口GPIO_Init结构体指针包含Pin、Mode、Pull、Speed返回值无5. HAL_GPIO_DeInitvoid HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);功能将GPIO恢复为默认浮空输入模式参数端口、引脚返回值无四、STM32CubeMX配置GPIO模式1. GPIO外设控制输出配置2. GPIO外设控制输入配置3. 非GPIO外设控制配置非GPIO外设控制GPIO引脚时GPIO引脚模式无需用户手动配置如使用USART1外设时引脚配置如下注意新版本的 MDK尤其是 v5.40 以上配合 Arm Compiler 6AC6使用时浏览信息功能可能存在一些已知的兼容性问题导致跳转失效可以尝试临时切换回经典的Use default compiler version 5AC5。
返回列表