STM32 GPIO寄存器基础知识

STM32的GPIO(General-Purpose Input/Output,通用输入输出)寄存器是用于控制和配置STM32微控制器上GPIO引脚的一组寄存器。这些寄存器允许开发者通过软件编程来设置GPIO引脚的工作模式(如输入、输出、复用功能等)、输出电平(高电平或低电平)、以及读取输入电平状态等。

如果对GPIO概念模糊的话可看我前一篇文章GPIO及相关概念(简介)

STM32的GPIO寄存器通常包括以下几类:

1. 端口配置寄存器

  • 端口配置低寄存器(GPIOx_CRL):用于配置GPIO端口的低8位引脚的模式和输出速度等。其中,每个引脚占用4位进行配置。
    官方手册描述:
    在这里插入图片描述

  • 端口配置高寄存器(GPIOx_CRH):用于配置GPIO端口的高8位引脚的模式和输出速度等。与GPIOx_CRL寄存器类似,但针对的是端口的另一半引脚。
    官方手册描述:
    在这里插入图片描述

这些寄存器中的位通常包括模式控制位(MODE[1:0])、输出速度配置位(CNF[1:0])以及上拉/下拉配置位(PUPD[1:0])等。

2. 数据寄存器

  • 输入数据寄存器(GPIOx_IDR):用于读取GPIO端口的输入电平状态。当引脚配置为输入模式时,可以通过此寄存器读取引脚上的电平状态(高电平或低电平)。
    官方手册描述:
    在这里插入图片描述

  • 输出数据寄存器(GPIOx_ODR):用于设置GPIO端口的输出电平状态。当引脚配置为输出模式时,可以通过向此寄存器写入相应的值来控制引脚输出的电平(高电平或低电平)。
    官方手册描述:
    在这里插入图片描述

3. 设置/清除寄存器

  • 设置/清除寄存器(GPIOx_BSRR):这是一个特殊的寄存器,用于同时设置或清除GPIO端口的多个引脚的状态。该寄存器分为两部分,高16位用于清除引脚(即将引脚输出电平设置为低电平),低16位用于设置引脚(即将引脚输出电平设置为高电平)。
    官方手册描述:
    在这里插入图片描述

4. 位清除寄存器

  • 位清除寄存器(GPIOx_BRR):此寄存器仅用于清除GPIO端口的引脚状态,即将引脚的输出电平设置为低电平。它通常用于需要单独清除某个引脚而不影响其他引脚的情况。
    官方手册描述:
    在这里插入图片描述
    在这里插入图片描述

5. 锁定寄存器

  • 锁定寄存器(GPIOx_LCKR):用于锁定GPIO端口的配置,防止配置被意外更改。在配置完GPIO引脚后,可以通过设置此寄存器来锁定配置,以确保系统的稳定性。
    官方手册描述:
    在这里插入图片描述

使用方法

在STM32中,操作GPIO寄存器通常涉及以下几个步骤:

  1. 配置时钟:首先,需要使能GPIO端口的时钟,以确保GPIO模块可以正常工作。
  2. 配置引脚模式:通过修改端口配置寄存器(GPIOx_CRL和GPIOx_CRH)来设置GPIO引脚的工作模式(输入、输出、复用功能等)和输出速度。
  3. 读写数据:根据需要,通过输入数据寄存器(GPIOx_IDR)读取引脚电平状态,或通过输出数据寄存器(GPIOx_ODR)和设置/清除寄存器(GPIOx_BSRR)控制引脚输出电平。

请注意,以上信息是基于STM32系列微控制器的通用描述。不同型号的STM32微控制器可能具有不同的GPIO寄存器配置和数量,因此在实际使用时需要参考具体的硬件手册参考手册

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值