×
单片机 > 单片机程序设计 > 详情

STM32总结之GPIO 常用库函数

发布时间:2020-08-31 发布时间:
|

配置相关函数


1.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_AIN


GPIO_Mode_IN_FLOATING


       GPIO_Mode_IPD


       GPIO_Mode_IPU


       GPIO_Mode_Out_OD


       GPIO_Mode_Out_PP


       GPIO_Mode_AF_OD


       GPIO_Mode_AF_PP


 GPIO_Speed:指定IO最快翻转速度,也就是当使用IO产生频率的最大速度。有四种模式:


                GPIO_Speed_10MHz,


                GPIO_Speed_2MHz


                GPIO_Speed_50MHz


GPIO的读写函数


1.uint8_t  GPIO_ReadInputDataBit  (GPIO_TypeDef* GPIOx , uint16_t GPIO_Pin)


函数解释:读取io输入管脚的值


参数:

(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


(2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。


返回值:输入管脚的值 Bit_SET(高电平),Bit_RESET(低电平)


2.uint16_t  GPIO_ReadInputData (GPIO_TypeDef* GPIOx )


函数解释:读取输入io数据,该函数用于读取一个io分组的所有数据


参数:GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


返回值:一个io端口的所有数据(输入状态)


3.uint8_t  GPIO_ReadOutputDataBit  (GPIO_TypeDef* GPIOx , uint16_t GPIO_Pin)


函数解释:读取io输出管脚的值


参数:

(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


(2)  GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。


返回值:输出管脚的值 Bit_SET(高电平),Bit_RESET(低电平)


4.uint16_t  GPIO_ReadOutputData (GPIO_TypeDef* GPIOx )


函数解释:读取输出io数据,该函数用于读取一个io分组的所有数据


参数:GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


返回值:一个io端口的所有数据(输出状态)


5.void  GPIO_SetBits(GPIO_TypeDef* GPIOx,uint16_t  GPIO_Pin)


函数解释:对io管脚进行置位(输出高电平)。这个函数使用GPIOx_BSRR寄存器来实现原子读或者修改操作。在这种情况下,在读和修改访问时发生一个IRQ中断是没有危险的。


参数:

(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


(2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。


6.void  GPIO_ResetBits(GPIO_TypeDef* GPIOx,uint16_t  GPIO_Pin)


函数解释:对io管脚进行复位(输出低电平)。这个函数使用GPIOx_BSRR寄存器来实现原子读或者修改操作。在这种情况下,在读和修改访问时发生一个IRQ中断是没有危险的。


参数:

(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


(2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。


7.void  GPIO_WriteBit(GPIO_TypeDef* GPIOx,uint16_t  GPIO_Pin,BitActionBitVal)


函数解释:对某一位进行写入操作。


参数:

(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


(2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。


(3)BitVal:写入高电平或者低电平(Bit_RESET:写入低电平 Bit_SET:写入高电平)


8.void  GPIO_Write(GPIO_TypeDef* GPIOx,uint16_t  PortVal)


函数解释:对GPIO端口进行写入操作,适用于对统一端口的多个管脚的写入。


参数:

(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


(2)BitVal:写入高电平或者低电平(Bit_RESET:写入低电平 Bit_SET:写入高电平)


9.void  GPIO_ToggleBits(GPIO_TypeDef* GPIOx,uint16_t  GPIO_Pin)


函数解释:翻转指定的GPIO口,如果当前io是高电平,则变为低电平。如果当前io是低电平,则变为高电平。


参数:

(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。


 (2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32 TIMER2的使用