HAL库-GPIO介绍

一.GPIO 使用

1.输入输出模式(8种)

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          #复用推挽输出

2.功能总结

  • 上拉和下拉输入对应着IO口内部上拉或下拉输入电阻。

  • 浮空输入表示IO口的状态电平是不确定的,完全由输入电平决定。一般用于标准通信协议的 I2C、 USART 的接收端。可以做键盘识别。

  • 模拟输入下,IO口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块等等。

  • 普通推挽输出模式一般应用在输出电平为 0 和 3.3V 的场合。IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的

  • 普通开漏输出模式一般应用在电平不匹配的场合,如需要输出5V 的高电平,就需要在外部一个上拉电阻,电源为 5V,GPIO 设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出 5V 电平。

  • 复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)。

  • 复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)。

3.GPIO的配置

  • 常用的GPIO配置函数

  HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);               #初始IO口状态
  HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);                       #重置IO口状态
  HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);                      #读取IO口状态
  HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState);      #设置IO口状态               
  HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);                    #转换IO口状态     
  HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);                      #锁定IO口状态
  

4.补充

  • Pull-up: 输入上拉就是把电位拉高,比如拉到 VCC。上拉就是将不确定的信号通过一个电阻嵌位在高电平。电阻同时起到限流的作用。弱强只是上拉电阻的阻值不同,没有什么严格区分。

  • Pull-down: 输入下拉就是把电压拉低,拉到 GND。与上拉原理相似。

  • 简单的说,如果你希望你的引脚平时处于高电平用于检测低电平,你就使用 Pull-up。如果你希望你的引脚平时处于低电平用于检测高电平,你就使用 Pull-down。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中北老狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值