Cubmax IO口配置,点亮LED

一、STM32的IO状态

STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:配置模式的 2 个 32 位的端口
配置寄存器 CRL 和 CRH; 2 个 32 位的数据寄存器 IDR 和 ODR; 1 个 32 位的置位/复位寄存器
BSRR;一个 16 位的复位寄存器 BRR; 1 个 32 位的锁存寄存器 LCKR。
 

相比51IO口,只有0,1,状态,32的IO口有8中模式,分别是

IO状态模式 特点和使用场景
1 输入浮空 即输入端口既不上拉(Pull up)也不下拉(Pull down),电平由外部输入决定;这种模式较少,一般模拟量输入、按键扫描输入使用该模式。
2 输入上拉 即输入端口配置一个电阻接到电源(Power)端,该电阻可以使用芯片内置,也可以是外部电阻。
3 输入下拉 即输入端口配置一个电阻到地(Ground),该电阻可以使用芯片内置,也可以是外部电阻。
4 模拟输入 模拟量信号输入,需要芯片内部支持AD转换功能才可以。
5 开漏输出 漏极开路输出(OD) 和集电极开路输出(OC)十分相似,都是无法输出高电平,只能输出低电平,需要高电平时需要外接上拉电阻。
6 推挽输出 推挽输出既可以输出高电平也可以输出低电平,无需外配置电阻。
7 推挽式复用功能 即推挽式输出和输入功能,使用时需要配置具体使用哪一种(雙方向端口,需要首先配置方向)。
8 开漏复用功能 即开漏输出和输入功能,使用时需要配置具体使用哪一种。

二、基本的HAL库函数封装

1.1 IO读取状态

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)

读取IO口的状态

函数的原型

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
{
  GPIO_PinState bitstatus;

  /* Check the parameters */
  assert_param(IS_GPIO_PIN(GPIO_Pin));

  if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RES
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值