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固件函数库用户手册)

作者:小琳橙子

物联沃分享整理
物联沃-IOTWORD物联网 » STM32 GPIO库函数

发表回复