GPIO简介:
• GPIO ( General Purpose Input Output )通用输入输出口• 可配置为 8 种输入输出模式• 引脚电平: 0V~3.3V ,部分引脚可容忍 5V (如舵机和驱动直流电机)• 输出模式下可控制端口输出高低电平,用以驱动 LED 、控制蜂鸣器、模拟通信协议输出时序等• 输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、 ADC 电压采集、模拟通信协议接收数据等
GPIO基本结构:

GPIO位结构:

GPIO模式:
提示:通过配置GPIO的端口配置寄存器,端口可以配置成以下8种模式
|   模式名称  |   性质  |   特征  | 
|   浮空输入  |   数字输入  |   可读取引脚电平,若引脚悬空,则电平不确定  | 
|   上拉输入  |   数字输入  |   可读取引脚电平,内部连接上拉电阻,悬空时默认高电平  | 
|   下拉输入  |   数字输入  |   可读取引脚电平,内部连接下拉电阻,悬空时默认低电平  | 
|   模拟输入  |   模拟输入  |   GPIO无效,引脚直接接入内部ADC  | 
|   开漏输出  |   数字输出  |   可输出引脚电平,高电平为高阻态,低电平接VSS  | 
|   推挽输出  |   数字输出  |   可输出引脚电平,高电平接VDD,低电平接VSS  | 
|   复用开漏输出  |   数字输出  |   由片上外设控制,高电平为高阻态,低电平接VSS  | 
|   复用推挽输出  |   数字输出  |   由片上外设控制,高电平接VDD,低电平接VSS  | 
浮空/上拉/下拉输入:
 模拟输入:
 

开漏/推挽输出 :

复用开漏/推挽输出

GPIO库函数 :
 函数名 |  描述 | 
 GPIO_DeInit |  将外设 GPIOx 寄存器重设为缺省值 | 
 GPIO_AFIODeInit |  将复用功能(重映射事件控制和 EXTI 设置)重设为缺省值 | 
 GPIO_Init |  根据 GPIO_InitStruct 中指定的参数初始化外设 GPIOx 寄存器 | 
 GPIO_StructInit |  把 GPIO_InitStruct 中的每一个参数按缺省值填入 | 
 GPIO_ReadInputDataBit |  读取指定端口管脚的输入 | 
 GPIO_ReadInputData |  读取指定的 GPIO 端口输入 | 
 GPIO_ReadOutputDataBit |  读取指定端口管脚的输出 | 
 GPIO_ReadOutputData |  读取指定的 GPIO 端口输出 | 
 GPIO_SetBits |  设置指定的数据端口位 | 
 GPIO_ResetBits |  清除指定的数据端口位 | 
 GPIO_WriteBit |  设置或者清除指定的数据端口位 | 
 GPIO_Write |  向指定 GPIO 数据端口写入数据 | 
 GPIO_PinLockConfig |  锁定 GPIO 管脚设置寄存器 | 
 GPIO_EventOutputConfig |  选择 GPIO 管脚用作事件输出 | 
 GPIO_EventOutputCmd |  使能或者失能事件输出 | 
 GPIO_PinRemapConfig |  改变指定管脚的映射 | 
 GPIO_EXTILineConfig |  选择 GPIO 管脚用作外部中断线路 | 



















