Chinaunix首页 | 论坛 | 博客
  • 博客访问: 116104
  • 博文数量: 153
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 882
  • 用 户 组: 普通用户
  • 注册时间: 2022-03-12 10:39
个人简介

不积小流,无以成江海。

文章分类

全部博文(153)

文章存档

2023年(50)

2022年(90)

我的朋友

分类: 嵌入式

2023-04-03 09:34:13


https://
mp.weixin.qq.com/s?__biz=MzA3OTM2NzUxOA==&mid=400250581&idx=4&sn=f5184a2aba115c4f50dba1d35ad8bfde&chksm=0d9b6ae43aece3f218122a45b807a2703871b2a60ae43f01a706b5d601d1c97e319c5afd70ff&scene=27


{BANNED}{BANNED}最佳佳近学习了stm32的GPIO的相关操作,发现其GPIO的配置模式有好几种,包括:

1.模拟输入;

2.浮空输入;

3.上拉输入;

4.下拉输入;

5.开漏输出;

6.推挽输出;

7.复用开漏输出;

8.复用推挽输出

如图是GPIO的结构原理图:

图片

初学感觉起来,还是挺复杂的,我在这里想简单的说说自己的理解,希望大家多多交流。

1.模拟输入

从上图我们可以看到,我觉得模拟输入{BANNED}{BANNED}最佳佳重要的一点就是,他不经过输入数据寄存器,所以我们无法通过读取输入数据寄存器来获取模拟输入的值,我觉得这一点也是很好理解的,因为输入数据寄存器中存放的不是0就是1,而模拟输入信号不符合这一要求,所以自然不能放进输入数据寄存器。该输入模式,使我们可以获得外部的模拟信号。

2.浮空输入

该输入状态,我的理解是,它的输入完全由外部决定,我觉得在数据通信中应该可以使用该模式。应为在数据通信中,我们直观的理解就是线路两端连接着发送端和接收断,他们都需要准确获取对方的信号电平,不需要外界的干预。所以我觉得这种情况适合浮空输入。比如我们熟悉的I2C通信。

3上拉输入

上拉输入就是在输入电路上使用了上拉电阻。这种模式的好处在于我们什么都不输入时,由于内部上拉电阻的原因,我们的处理器会觉得我们输入了高电平,这就避免了不确定的输入。这在要求输入电平只要高低两种电平的情况下是很有用的。

4下拉输入

和上拉输入类似,不过下拉输入时,在外部没有输入时,我们的处理器会觉得我们输入了低电平。

5开漏输出

开漏输出,输出端相当于三极管的集电极,所以适合与做电流驱动的应用。要得到高电平,需要上拉电阻才可以。

6推挽输出

推挽输出使用了推挽电路,结合推挽电路的特性,它是由两个MOSFET组成,一个导通的同时,另外一个截至,两个MOSFET分别连接高低电平,所以哪一个导通就会输出相应的电平。推挽电路速度快,输出能力强,直接输出高电平或者低电平。

7复用开漏和复用推挽

我们知道这只是对GPIO的复用而已。使普通的GPIO具有了别的功能。

以上,是我对GPIO几种输入输出模式的理解,欢迎大家和我交流。

另外我还想说说我对位带操作在SRAM中的优势的理解:

Stm32的位带操作在SRAM中的优势是特别明显的,那就是在利用位带操作之后,我们可以对每一个比特进行读写。我们知道之前的处理器中存储数据有固定的对其格式,有字节对齐,字对齐,双字对齐等等,这样的话,如果一个数据只有8位,而采取字对齐的方式的话(16位)就会浪费掉存储空间。但是在有了位带操作之后,我们不用担心这种情况,因为我们可以充分的利用每一比特空间。

阅读(436) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~