重要的数据: 函数名 参数 返回值
(1)void GPIO_DeInit(GPIO_TypeDef *GPIOx)
功能:将GPIOx外设寄存器初始化为默认值
注释:判断GPIOx具体为哪个端口,再通过操作RCC_APB2RSTR(APB2外设复位寄存器)对其寄存器进行复位
例:GPIO_DeInit(GPIOA);
(2)void GPIO_AFIODeInit(void)
功能:将复用功能(重映射与EXTI设置)重设为默认值
注释:通过操作RCC_APB2RSTR(APB2外设复位寄存器)对其寄存器进行复位
例:GPIO_AFIODeInit();
(3)void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
功能:按照GPIO_InitStruct结构体变量所配置的参数来初始化GPIOx寄存器
注释:将结构体内成员所赋的值取出并赋给对应的寄存器
例:GPIO_Init(GPIOA,&GPIO_InitStructure);
(4)void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)
功能:将GPIO结构体各个成员填充为默认值
注释:未涉及寄存器操作,直接向结构体成员赋默认值
例:GPIO_StructInit(&GPIO_InitStructure);
(5)uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:读取指定端口引脚的输入电平,针对Pin
注释:通过访问GPIOx_IDR(端口输入数据寄存器)可获知某一引脚的输入电平
例: ReadValue = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);
(6)uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)
功能:读取指定GPIO端口的输入电平,针对Port
注释:通过访问GPIOx_IDR(端口输入数据寄存器)可获知某一端口的输入电平
例:ReadValue = GPIO_ReadInputData(GPIOC);
(7)uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:读取指定端口引脚的输出电平,针对Pin
注释:通过访问GPIOx_ODR(端口输出数据寄存器)可获知某一引脚的输出电平
例:ReadValue = GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);
(8)uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)
功能:读取指定GPIO端口的输出电平,针对Port
注释:通过访问GPIOx_ODR(端口输出数据寄存器)可获知某一端口的输出电平
例:ReadValue = GPIO_ReadOutputData(GPIOC);
(9)void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:设置选定的数据端口位,置“1”,一个或多个
注释:使用GPIOx_BSRR的端口位设置功能来达到设置引脚输出为“1”的目的,BSRR同样具备BRR功能
例:GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);
(10)void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:清除指定的数据端口位,清“0”,一个或多个
注释:通过操作BRR寄存器来实现端口引脚的低电平输出
例:GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);
(11)void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)
功能:对某一个端口管脚实现清“0”或置“1”操作,一个
注释:判断电平,进而对应操作BRR或者BSRR
例:GPIO_WriteBit(GPIOA, GPIO_Pin_15, 1);
(12)void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)
功能:向某一端口写入指定数据
注释:将数据写入GPIOx_ODR寄存器,ODR可读可写,但只能字操作
例:GPIO_Write(GPIOA, 0x1234);
(13)void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:锁定GPIO管脚的配置,下次系统复位之前将不能再更改端口位的配置,一个或多个
注释:根据键写入序列,通过操作LCKK与LCKx来进行设置
例:GPIO_PinLockConfig(GPIOA, GPIO_Pin_0 | GPIO_Pin_1);
(14)void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
功能: 选择GPIO管脚用作事件输出
注释:对AFIO_EVCR的操作
例:GPIO_EventOutputConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5);
(15)void GPIO_EventOutputCmd(FunctionalState NewState)
功能:使能或失能事件输出
注释:与GPIO_EventOutputConfig配合使用
例:GPIO_EventOutputCmd(ENABLE);
(16)void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
功能:选择GPIO管脚作为中断线路
注释:16个管脚占用了4个寄存器
例:GPIO_EXTILineConfig(GPIO_PortSource_GPIOB, GPIO_PinSource8);
重要的数据: 函数名 参数 返回值
(1)void GPIO_DeInit(GPIO_TypeDef *GPIOx)
功能:将GPIOx外设寄存器初始化为默认值
注释:判断GPIOx具体为哪个端口,再通过操作RCC_APB2RSTR(APB2外设复位寄存器)对其寄存器进行复位
例:GPIO_DeInit(GPIOA);
(2)void GPIO_AFIODeInit(void)
功能:将复用功能(重映射与EXTI设置)重设为默认值
注释:通过操作RCC_APB2RSTR(APB2外设复位寄存器)对其寄存器进行复位
例:GPIO_AFIODeInit();
(3)void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
功能:按照GPIO_InitStruct结构体变量所配置的参数来初始化GPIOx寄存器
注释:将结构体内成员所赋的值取出并赋给对应的寄存器
例:GPIO_Init(GPIOA,&GPIO_InitStructure);
(4)void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)
功能:将GPIO结构体各个成员填充为默认值
注释:未涉及寄存器操作,直接向结构体成员赋默认值
例:GPIO_StructInit(&GPIO_InitStructure);
(5)uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:读取指定端口引脚的输入电平,针对Pin
注释:通过访问GPIOx_IDR(端口输入数据寄存器)可获知某一引脚的输入电平
例: ReadValue = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);
(6)uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)
功能:读取指定GPIO端口的输入电平,针对Port
注释:通过访问GPIOx_IDR(端口输入数据寄存器)可获知某一端口的输入电平
例:ReadValue = GPIO_ReadInputData(GPIOC);
(7)uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:读取指定端口引脚的输出电平,针对Pin
注释:通过访问GPIOx_ODR(端口输出数据寄存器)可获知某一引脚的输出电平
例:ReadValue = GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);
(8)uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)
功能:读取指定GPIO端口的输出电平,针对Port
注释:通过访问GPIOx_ODR(端口输出数据寄存器)可获知某一端口的输出电平
例:ReadValue = GPIO_ReadOutputData(GPIOC);
(9)void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:设置选定的数据端口位,置“1”,一个或多个
注释:使用GPIOx_BSRR的端口位设置功能来达到设置引脚输出为“1”的目的,BSRR同样具备BRR功能
例:GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);
(10)void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:清除指定的数据端口位,清“0”,一个或多个
注释:通过操作BRR寄存器来实现端口引脚的低电平输出
例:GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);
(11)void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)
功能:对某一个端口管脚实现清“0”或置“1”操作,一个
注释:判断电平,进而对应操作BRR或者BSRR
例:GPIO_WriteBit(GPIOA, GPIO_Pin_15, 1);
(12)void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)
功能:向某一端口写入指定数据
注释:将数据写入GPIOx_ODR寄存器,ODR可读可写,但只能字操作
例:GPIO_Write(GPIOA, 0x1234);
(13)void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
功能:锁定GPIO管脚的配置,下次系统复位之前将不能再更改端口位的配置,一个或多个
注释:根据键写入序列,通过操作LCKK与LCKx来进行设置
例:GPIO_PinLockConfig(GPIOA, GPIO_Pin_0 | GPIO_Pin_1);
(14)void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
功能: 选择GPIO管脚用作事件输出
注释:对AFIO_EVCR的操作
例:GPIO_EventOutputConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5);
(15)void GPIO_EventOutputCmd(FunctionalState NewState)
功能:使能或失能事件输出
注释:与GPIO_EventOutputConfig配合使用
例:GPIO_EventOutputCmd(ENABLE);
(16)void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
功能:选择GPIO管脚作为中断线路
注释:16个管脚占用了4个寄存器
例:GPIO_EXTILineConfig(GPIO_PortSource_GPIOB, GPIO_PinSource8);
举报