STM32笔记(三)GPIO的配置(用GPIO点亮LED)

本文详细介绍了STM32的GPIO基础知识,包括GPIO的模式设置、常用寄存器及其作用,以及如何通过GPIO初始化和库函数来控制LED的亮灭。通过实例展示了如何将GPIOE_5配置为复用推挽输出以实现LED的低电平点亮。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GPIO简介

GPIO的英文名称是General Purpose Input Output,顾名思意,就是通用输入输出口,可以用来输入输出高低电平进而控制各种连接在GPIO上的模块等等。STM32的GPIO就是51单片机的P11、P12等等引脚,不过STM32的GPIO更加强大,具有多种模式,为了控制功耗,每一个GPIO都有单独的时钟开关,每使用到一个GPIO都要对其时钟使能,而且STM32的GPIO的输入输出必须单独配置


GPIO的模式与各种外设GPIO模式的设置

在这里插入图片描述

GPIO有八种输入输出模式,对于输出模式还能设置输出的速度,每一个外设对应GPIO口的模式都不全相同,例如使用I2C_SCL的时候GPIO口要设置成 开漏复用输出,SPI_SCK主模式GPIO口要设置成 推挽复用输出等等,记住是不可能的,不过官方的参考手册就已经给出了每一个外设的GPIO的配置情况,我们需要用到某个外设GPIO口的时候不知道怎么配置模式可以到《STM32中文参考手册》8.1.11小节查看
在这里插入图片描述


GPIO的常用寄存器

首先对于每一个寄存器必须以字(32位)的方式操作这些外设寄存器

  1. 端口配置寄存器(GPIOx_CRL) (x=A…E)
    配置GPIO 0~7位的模式
    在这里插入图片描述

  2. 端口配置寄存器(GPIOx_CRH) (x=A…E)
    配置GPIO 8~16位的模式
    在这里插入图片描述

  3. 端口输入数据寄存器(GPIOx_IDR) (x=A…E)
    有16个位 只读并只能以字(16位)的形式读出
    对于每个GPIO16个引脚的状态,是高电平就是1,低电平就是0
    在这里插入图片描述

  4. 端口输出数据寄存器(GPIOx_ODR) (x=A…E)
    配置GPIO输出的电平
    在这里插入图片描述

  5. 端口位设置/清除寄存器(GPIOx_BSRR) (x=A…E)
    前16位写1就会对对应的ODR寄存器的位写1
    后16位写1就会对对应的ODR寄存器的位写0
    一般只用BSRR寄存器来写1,也就是只用前16位,后面16位一般不用

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值