STM32入门教程-2023版【3-1】GPIO可配置的几种模式和手册描述

发布时间:2023年12月22日

关注?+ 点赞? ?不错过精彩内容

图片

大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!?

四、端口可以配置的8种模式

图片

前三个模式电路基本一样,区别就是上拉电阻和下拉电阻的连接,在使用浮空输入时,端口一定要接一个连续的驱动源,不能使端口悬空

输入模式下,输出驱动器是断开的,只能输入不能输出,开关闭合对应着三种模式

容忍5V的引脚,保护二极管上面需要做出处理,要不然这里直接接VDD3.3V,外部再接入5V的电压会导致上面的二极管打开,并且产生较大电流,这样是不太妥当的

图片

模拟输入可以说是ADC模数转换器的专属配置了

输出是断开的,输入的施密特触发器也是关闭无效的状态,整个GPIO只剩下这根线有用,也就是从引脚直接接上片上外设,也就是ADC。所以当我们使用ADC时,直接将引脚配置为模拟输入就行了,其他时候一般用不上

图片

下面两者的区别在于,开漏输出的高电平呈现高阻态,没有驱动能力,推挽输出的高低电平都有驱动能力

P-MOS如果无效就是开漏输出,P-MOS和N-MOS有效就是推挽输出。另外,我们可以看到在输出模式下,输入模式同样有效(前面的结构输出模式下,输入模式都是无效的)。这是因为一个端口可以有多个输入,但只能有一个输出。所以当配置成输出模式时,内部顺便输入一下是没问题的

图片

下面两者与上面的区别在于,复用的输出,引脚是由片上外设控制的

图片

这8种模式,除了模拟输入这个模式会关闭数字的输入功能,其他7个模式中所有的输入都是有效的

五、STM32手册中的GPIO

STM32手册一上来就讲了GPIO的八种功能,就是我们上面讲的8种模式,如果哪里有不懂得可以再结合手册理解一下

图片

当我们使用这些片上外设的引脚时,可以参考STM32手册这个表里给的配置

图片

GPIO寄存器描述:GPIO配置寄存器:端口配置寄存器,每一个端口的模式由4位进行配置

图片

16个端口就需要64位,所以这里配置寄存器两个,一个是端口配置低寄存器,一个是端口配置高寄存器

图片

具体怎么配置的,可以参考这个寄存器下面的详细说明,这里还多出了一项GPIO输出的速度,结构图里没有说明速度这个参数,这个GPIO输出速度可以限制输出引脚的最大翻转速度,这个设计是为了降低功耗和稳定性,如果要求不高直接配置成50MHz即可

图片

GPIO寄存器描述:GPIO配置寄存器:端口输入寄存器对应的GPIO位结构是这里

图片

里面低16位对应15~0号引脚,高16位没有使用

图片

GPIO寄存器描述:GPIO配置寄存器:端口输出寄存器

图片

里面低16位对应15~0号引脚,高16位没有使用

图片

GPIO寄存器描述:GPIO配置寄存器:端口位设置/清除寄存器

图片

这个寄存器的高16位是进行位清除的,低16位是进行位设置

图片

写一就是设置或清除,写0就是不产生影响

图片

GPIO寄存器描述:GPIO配置寄存器:端口位清除寄存器

图片

这个寄存器的低16位的作用和上面端口位设置/清楚寄存器的高16位作用是一样的,这个寄存器存在是为了方便操作设置的,想进行单一的位设置和位清除,那位设置用上面这个寄存器,位清除用下面这个寄存器,因为在设置和清除时,使用的都是低16位的数据,这样就方便一些;如果想使用多个端口的位设置和位清除,那就使用第一个寄存器即可,这样就可以保证位位设置和位清除的同步性。如果对信号的同步性要求不高的话,先进行位设置再进行位清除也是没问题的

GPIO寄存器描述:GPIO配置寄存器:端口配置锁定寄存器

图片

最后一个就是端口配置锁定寄存器,这个可以对端口的配置进行锁定,防止意外更改,使用方法看介绍,这里我们暂时使用的不多

作?者?:硬核王同学

-------?END?--------

关注公众号回复“加群”按规则加入技术交流群 ?回复“1024”查看更多内容

图片

文章来源:https://blog.csdn.net/qq_56921854/article/details/135155931
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。