stm32之GPIO的理解

本文详细介绍了STM32 GPIO的常用寄存器,如GPIOx_CRH、GPIOx_CRL、GPIOx_BSRR、GPIOx_IDR和GPIOx_ODR,并解析了输出模式(推挽、开漏、复用)和输入模式(模拟输入、浮空输入、上拉/下拉输入)。此外,还讨论了IO口的宏定义、库函数和位带操作,强调位带操作在底层程序中的优势和应用。
摘要由CSDN通过智能技术生成

写这个博客着重缕清自己的思路,对基础的东西有个更好的理解。

GPIO中的常用的寄存器

GPIOx_CRH 与GPIOx_CRL : 可以配置GPIO的各种模式,进行初始化。
GPIOx_BSRR : 32位寄存器,可以写入或清除1/0
GPIOx_IDR : 低16位寄存器,读取IO的电平
GPIOx_ODR :低16位寄存器,写入IO的电平

输出模式中包含

  • 通用推挽输出:可以输出高低电平
  • 通用开漏输出:不能输出高电平,需要外接上拉电阻
  • 复用推挽输出:复用功能时,同上
  • 复用开漏输出:复用功能时,同上

    用一幅最简单的图形来概括:
    这里写图片描述

输入模式中包含

  • 模拟输入模式:输入的是模拟量(用于ADC等)
  • 浮空输入模式:浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定(一般用于各种通信协议
  • 上拉/下拉输入模式:比较容易理解

通过对寄存器的操作就可以实现IO口的操作了。

对IO口进行宏定义

对库函数进行宏定义

#define LED1_OFF       GPIO_SetBits(GPIOB,GPIO_Pin_0)
#define LED1_ON        GPIO_ResetBits(GPIOB,GPIO_Pin_0)     

对寄存器进行宏定义

/* 直接操作寄存器的方法控制IO */
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值