STM32 GPIO库函数
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
GPIOx:x 可以是 A,B,C,D 或者 E,来选择 GPIO 外设
功能:将外设 GPIOx 寄存器重设为默认选项
eg:GPIO_DeInit(GPIOA); 重新设置GPIOA的外围寄存器为默认值
void GPIO_AFIODeInit(void);
功能:将复用功能(重映射事件控制和EXTI设置)重设为默认选项
GPIO_AFIODeInit( ); 重新设置备用功能寄存器为默认值
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
根据GPIO_InitStruct 中指定的参数初始化外设GPIOx寄存器
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
GPIO_InitStruct:指向结构 GPIO_InitTypeDef 的指针,待初始化
功能:把GPIO_InitStruct 中的每一个参数按缺省值填入
选中全部引脚、引脚速度为最高输出频率为2MHz,引脚工作状态为浮空输入
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
功能:读取指定端口引脚的输入,具体到某一端口某一引脚
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
GPIO_Pin:待读取的端口位
返回输入引脚值
eg:GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7); 读取B7口输入的数据
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
功能:读取指定端口引脚的输出,具体到某一端口某一引脚
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
GPIO_Pin:待读取的端口位
返回输出引脚值
eg:GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7); 读取B7口输出的数据
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
功能:读取指定的GPIO端口输入,不用管在哪个引脚
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
eg:GPIO_ReadInputData(GPIOC); 读取GPIOC口输入的数据
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
功能:读取指定的GPIO端口输出,不用管在哪个引脚
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
eg:GPIO_ReadOutputData(GPIOC); 读取GPIOC口输出的数据
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
功能:设置指定的数据端口位
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
GPIO_Pin:待设置的端口位,该参数可以取GPIO_Pin_x(x可以是0-15)的任意组合
eg:GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15); 设置GPIOA10和GPIOA15
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
功能:清除指定的数据端口位
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
GPIO_Pin:待设置的端口位,该参数可以取GPIO_Pin_x(x可以是0-15)的任意组合
eg:GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15); 清除GPIOA10和GPIOA15
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
功能:设置或者清除指定的数据端口位
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
GPIO_Pin:待设置或清除的端口位,该参数可以取GPIO_Pin_x(x可以是0-15)的任意组合
eg:GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET); 设置GPIOA15
GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET); 清除GPIOA15
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
功能:向指定GPIO数据端口写入数据
GPIOx:x 可以是A,B,C,D或者E,来选择GPIO外设
PortVal: 待写入端口数据寄存器的值
eg:GPIO_Write(GPIOA, 0x1101); 向GPIOA写入十六进制0x1101
(参考文档:STM32F103xx固件函数库用户手册)
作者:小琳橙子