我对stm32中GPIO输入输出模式的理解

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

1.模拟输入;

2.浮空输入;

3.上拉输入;

4.下拉输入;

5.开漏输出;

6.推挽输出;

7.复用开漏输出;

8.复用推挽输出

如图是GPIO的结构原理图:

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

1.模拟输入

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

2.浮空输入

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

3上拉输入

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

4下拉输入

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

5开漏输出

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

6推挽输出

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

7复用开漏和复用推挽

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

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

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

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

粽子糖果 发表于09-21 11:24 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

粽子糖果
粽子糖果(总统)
金币:41631个|学分:51991个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号