xyn1 发表于 2022-8-25 09:02:05

请教坛友有关GPIO的问题

刚学stm32,记得一个视频里,说51单片机,就没有gpio这个概念,一直也没彻底弄明白,什么才算是gpio,昨天看到一篇短文,
说p0-p3就是gpio,请明白的坛友给梳理一下,这个gpio到底是个啥,
i2c,spi,我的理解是协议,可以在gpio上实现,高级点的芯片,配置几个寄存器,就能实现i2c或者spi,


JuncoJet 发表于 2022-8-25 09:12:18

GPIO都有,
51直接通过寄存器操作(赋值)
STM32需要通过函数,寄存器也能但基本不那么编程

washu 发表于 2022-8-25 09:36:31

这个概念要从最初的 CPU 说起,比如 Intel 8088,有 8 条数据线(I/O)和 12 条地址线(O),以及 R/D(O)、INT(I)等状态线,其中只有数据线是双向(三态)的,地址线、R/D、INT...是单向且功能不可变更的。

而单片机的管脚,除了比如 8051 的晶振、RST 等是专用管脚(注意这里说的是 i8051 不是死太惨巫妖),诸如地址线、数据线、UART RX/TX、INT、R/D 都是合并到普通 IO 里作为第二功能的,这些普通 IO 如果不用第二功能,那就是 GPIO,你想干点啥就干啥。

所以并非巫妖没有 GPIO 概念,而是那时候不那么说...

kinglin 发表于 2022-8-25 10:00:37

这是初学STM32难以理解的一个简单知识点之一,所谓GPIO先看它缩写GPIO(英语:General-purpose input/output),就是通用型之输入输出的简称,也就是说,还是单片机的输入输出接口,功能多一些,没有什么神秘。
但是跟以前的51系列单片机不同,它在使用前需要配置一下,这个是许多初学者没习惯的地方,下面是GPIO的八种模式

输入:

外部上拉:空闲时,io口呈现高电平
外部下拉:空闲时,io口呈现低电平
浮空输入:空闲时io口状态不确定;一般用于读取数据
模拟输入:ADC/DAC
输出:

开漏输出
推挽输出:可以输出高低电平,驱动能力较强
开漏复用
推挽复用功能

通过几串语句配置就可以定义对应脚的功能,使用上非常灵活。具体还是要看些教程,了解清楚为什么这么配置,配置成这样怎么样使用,能实现什么样的功能。

ssffzz1 发表于 2022-8-25 11:15:54

我是半吊子水平,我给你说下,不对就说,别喷:

GPIO口就是普通的IO口,能输入,输出。STM32的GPIO口有些是和某些功能的接口复用的,譬如这个脚可以当普通的脚,或者当I2C总线的脚,全看设置。

当然对于简单的总线譬如I2C,有些芯片里没集成这个功能的专用芯片,那么也可以用GPIO根据I2C的时序来模拟,就是用软件来做。这是另一回事了。

xyn1 发表于 2022-8-25 23:33:58

washu 发表于 2022-8-25 09:36
这个概念要从最初的 CPU 说起,比如 Intel 8088,有 8 条数据线(I/O)和 12 条地址线(O),以及 R/D(O) ...

谢坛友, 看到您头像,就知道有答案了, 感谢!

yubinwu 发表于 2022-8-27 20:40:54

IO總是都是的
GPIO增強的功能,爲啥叫GPIO不清楚,P可能是可編程的意思

ka2209 发表于 2022-8-30 15:16:22

yubinwu 发表于 2022-8-27 20:40
IO總是都是的
GPIO增強的功能,爲啥叫GPIO不清楚,P可能是可編程的意思

P并不是programmable得意思,而是purpose(意图)的意思

快乐毛毛虫 发表于 2022-8-31 11:12:18

其实就是叫法不同而已。楼上有坛友已经把gpio的英文全称列出来了。51简称port而已。
当然32配置端口复杂是因为功能强大。
页: [1]
查看完整版本: 请教坛友有关GPIO的问题