STM32 GPIO常用库函数使用

本文详细介绍了STM32中GPIO_Init、GPIO_SetBits、GPIO_ResetBits等函数的用法,包括GPIO结构体参数及功能,适用于初学者了解单片机GPIO操作。
摘要由CSDN通过智能技术生成

单片机学习


一、函数 GPIO_Init

        函数 GPIO_Init 可以初始化配置 A、B、C、D、E 端口的任意一个I/O口的输入输出。

1.1 函数介绍

1.2 GPIO_InitTypeDef 结构体

GPIO_InitTypeDef 结构体定义:

typedef struct
{
  uint16_t GPIO_Pin;             /*!< Specifies the GPIO pins to be configured.
                                      This parameter can be any value of @ref GPIO_pins_define */

  GPIOSpeed_TypeDef GPIO_Speed;  /*!< Specifies the speed for the selected pins.
                                      This parameter can be a value of @ref GPIOSpeed_TypeDef */

  GPIOMode_TypeDef GPIO_Mode;    /*!< Specifies the operating mode for the selected pins.
                                      This parameter can be a value of @ref GPIOMode_TypeDef */
}GPIO_InitTypeDef;

1.2.1 GPIO_Pin

        GPIO_Pin用于选择待设置的GPIO引脚号,使用操作符 | 可以一次选中多个引脚。

1.2.2 GPIO_Speed

        GPIO_Speed用于设置选中引脚的速率。

1.2.3 GPIO_Mode

        GPIO_Mode用于设置选中引脚的工作状态。

1.3 函数使用示例

GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置引脚工作状态为推挽输出
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_All;//选中全部引脚
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//选中引脚最高速率50MHz
	GPIO_Init(GPIOA,&GPIO_InitStruct);

二、函数 GPIO_SetBits

        函数 GPIO_SetBits 可设置所选定的端口位为高电平。

2.1 函数介绍

2.2 函数使用示例

GPIO_SetBits(GPIOA,GPIO_Pin_0);//GPIOA外设的0号引脚设为高电平

三、函数 GPIO_ResetBits

        函数 GPIO_ResetBits 可设置所选定的端口位为低电平。

3.1 函数介绍

3.2 函数使用示例

GPIO_ResetBits(GPIOA,GPIO_Pin_0);//GPIOA外设的0号引脚设为高电平

四、函数 GPIO_WriteBit

        函数 GPIO_WriteBit 可设置或清除所选定端口的特定位。

4.1 函数介绍

4.2 函数使用示例

GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//设为低电平

GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//设为高电平
GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);//设为低电平

GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);//设为高电平

五、函数 GPIO_Write

        函数 GPIO_Write 可向指定的外设端口写入数据。

5.1 函数介绍

PortVal:待写入端口数据寄存器的值,值为16进制。

5.2 函数使用示例

GPIO_Write(GPIOA,0x0001);

六、函数GPIO_ReadInputDataBit

6.1 函数介绍

        函数 GPIO_ReadInputDataBit 用于读取输入数据寄存器中指定外设端口的指定引脚的输入值。

        返回值 unit8_t 代表这个端口高低电平

6.2 函数使用示例

GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1);

七、函数GPIO_ReadInputData

7.1 函数介绍

        函数 GPIO_ReadInputData 用来读取整个输入数据寄存器中指定外设端口输入的值。

        返回值 uint16_t 是一个16位的数据,每一位代表一个端口值。

7.2 函数使用示例

GPIO_ReadInputData(GPIOA);

八、函数GPIO_ReadOutputDataBit

8.1 函数介绍

        函数 GPIO_ReadOutputDataBit 用来读取输出数据寄存器中指定外设端口的指定引脚的输出值。这个函数一般用于输出模式下,用来查看输出的是什么。

8.2 函数使用示例

GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_1);

九、函数 GPIO_ReadOutputData

9.1 函数介绍

        函数 GPIO_ReadOutputData 用于读取整个输出寄存器指定外设端口的输出值。

9.2 函数使用示例

GPIO_ReadOutputData(GPIOA);

        函数的功能可以对照我前面的内容GPIO位结构一起分析。STM32 GPIO-CSDN博客


总结

        以上就是今天要讲的内容,本文仅仅简单介绍了GPIO常用函数的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值