GPIO工作模式和寄存器

本文详细介绍了GPIO的多种工作模式,包括浮空输入、模拟输入、带上下拉输入、推挽输出、开漏输出及复用模式等。同时,解析了GPIO相关的七个寄存器功能,如配置寄存器、数据寄存器、设置/清除寄存器等,帮助读者深入理解GPIO的工作原理。

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

GPIO工作模式

1、浮空输入模式 GPIO_Mode_IN_FLOATING
引脚状态不确定,引脚悬空时,电平状态是不确定的值,可以做KEY识别串口的RX1
2、模拟输入模式 GPIO_Mode_AIN
ADC模拟输入,可以读取到细微变化的值

3,4、带上拉、下拉输入模式 GPIO_Mode_IPD GPIO_Mode_IPU
采用带上拉或者下拉输入的模式先给MCU一个确定的状态,当外部电路电平状态发生变化时,易于MCU的判断。这样可以增强MCU的抗干扰能力

5、推挽输出模式 GPIO_Mode_Out_PP
用于连接数字器件

6、开漏输出模式 GPIO_Mode_Out_OD
如果外部不接上拉电阻时,只能输出低电平,所以要想输出高电平必须要外接上拉电阻。可以用来匹配不同的电平信号,也就是用于不同电压的系统之间的通信,如模拟I2C使用开漏输出_OUT_OD

7,8、复用推挽、复用开漏输出模式 GPIO_Mode_AF_ODGPIO_Mode_AF_PP
可以理解为把GPIO配置为第二功能使用的时候的配置,并非单纯的用作IO输入或输出.
比如使用外设IIC时,我们需要把GPIO配置为复用推挽输出,用于数据通信功能
再比如串口通信的TX、以及SPI外设的GPIO使用就要把引脚设置为复用开漏输出。

GPIO寄存器

共七个寄存器,
包括:
两个配置寄存器 CRL,CRH
两个数据寄存器 IDR,ODR
一个set/reset 寄存器 BSRR
一位reset 寄存器 BRR
一位32位的锁定寄存器 == LCKR==

端口配置高/低寄存器

复位默认为浮空输入模式,低寄存器配置[7:0]位的GPIO,高寄存器配置[15:8]位的GPIO
在这里插入图片描述

端口输出数据寄存器

默认 输出为0
在这里插入图片描述

端口输入数据寄存器

与输出数据寄存器相同,但输入寄存器只能读。
在这里插入图片描述

端口设置/清除寄存器

该寄存器可以方便地快速地实现对端口某些特定位的操作,而不影响其它位的状态。值得注意的是,一个GPIO的置零或者置一操作,需要两位来完成,
=设置位为一才会置为一,清除为置为1才会置为零。两者同时为一时候,以清除位为准。
在这里插入图片描述

端口位清除寄存器

与BSSR相同,但只能清除
在这里插入图片描述

端口配置锁定寄存器(LCKR)

锁定相应端口的某一位,也就是锁定控制寄存器CRL/CRH相应的4个位,在下次系统复位之前更改该端口该位的配置无效,简单的说就是锁定IO无法配置为其他模式,高低电平可以输出具体怎么用,还需要实际验证,不过这寄存器太鸡肋了,大概是没有机会验证的了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

工农村贴膜小哥

我倒是要看看是那个憨憨在给我打

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

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

打赏作者

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

抵扣说明:

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

余额充值