初始化和配置相关函数
1.void GPIO_DeInit (GPIO_TypeDef* GPIOx)
函数解释:gpio的反初始化函数,该函数的作用是把GPIO相关的寄存器配置成上电复位后的默认状态,在第一次初始化前或者不在使用某一接口后,可以调用该函数。
参数:GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。
2.void GPIO_Init (GPIO_TypeDef* GPIOx,GPIO_InitTypeDef* GPIO_InitStruct)
函数解释:GPIO的初始化函数,该函数的作用是对io进行初始化。
参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。
(2)GPIO_InitStruct,GPIO的初始化相关结构体。该结构体里的成员变量决定了我们具体的初始化参数。以下进行说明:
GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。
GPIO_Mode:指定GPIO的模式,有四种模式:
GPIO_Mode_IN(输入), GPIO_Mode_OUT(输出), GPIO_Mode_AF(第二功能), GPIO_Mode_AN(模拟)
GPIO_Speed:指定IO最快翻转速度,也就是当使用IO产生频率(如PWM)的最大速度。有四种模式:
GPIO_Low_Speed(低速), GPIO_Medium_Speed(中等速度), GPIO_Fast_Speed(快速), GPIO_High_Speed(低速)
GPIO_OType:指定选择管脚的输出类型,有以下两种配置:
GPIO_OType_PP(推挽方式输出),GPIO_OType_OD(开漏方式输出)
温馨提示:
推挽输出:推挽输出就是单片机引脚可以直接输出高电平电压。低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。推挽方式的驱动力更大。
开漏输出:开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时,电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机低的时候。
GPIO_PuPd:指定选择管脚的上拉和下拉模式。有三种配置:
GPIO_PuPd_NOPULL(不上拉也不下拉),GPIO_PuPd_UP(上拉),GPIO_PuPd_DOWN(下拉)
温馨提示:
这些都是io内部的内部上拉或者下拉模式,也可以接上拉或下拉电阻,通过硬件连接,实现外部上拉或外部下拉。
3.void GPIO_StructInit (GPIO_InitTypeDef* GPIO_InitStruct)
函数解释:GPIO结构体的初始化。对GPIO_InitStruct结构体进行默认配置。
参数:GPIO_InitStruct,直接传入该结构体的指针。在该函数内会对结构体进行初始化。
4.void GPIO_PinLockConfig (GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
函数解释:锁定GPIO寄存器,锁定的寄存器是GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH。在下一次复位前,被锁定的管脚不能被修改。
参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

本文详细介绍了STM32微控制器的GPIO(通用输入输出)功能,包括初始化、配置、读写、复用功能配置等核心函数的使用方法,以及通过示例展示了如何配置GPIO为输出或输入,设置复用功能。
1万+

被折叠的 条评论
为什么被折叠?



