单片机学习小组
直播中

听我讲

9年用户 697经验值
擅长:电源/新能源 MEMS/传感技术
私信 关注

GPIO工作模式有哪几种?

GPIO工作模式有哪几种?

回帖(1)

马舒滟

2022-2-11 11:58:22
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无法配置为其他模式,高低电平可以输出具体怎么用,还需要实际验证,不过这寄存器太鸡肋了,大概是没有机会验证的了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分