请教坛友有关GPIO的问题
刚学stm32,记得一个视频里,说51单片机,就没有gpio这个概念,一直也没彻底弄明白,什么才算是gpio,昨天看到一篇短文,说p0-p3就是gpio,请明白的坛友给梳理一下,这个gpio到底是个啥,
i2c,spi,我的理解是协议,可以在gpio上实现,高级点的芯片,配置几个寄存器,就能实现i2c或者spi,
GPIO都有,
51直接通过寄存器操作(赋值)
STM32需要通过函数,寄存器也能但基本不那么编程 这个概念要从最初的 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 概念,而是那时候不那么说... 这是初学STM32难以理解的一个简单知识点之一,所谓GPIO先看它缩写GPIO(英语:General-purpose input/output),就是通用型之输入输出的简称,也就是说,还是单片机的输入输出接口,功能多一些,没有什么神秘。
但是跟以前的51系列单片机不同,它在使用前需要配置一下,这个是许多初学者没习惯的地方,下面是GPIO的八种模式
输入:
外部上拉:空闲时,io口呈现高电平
外部下拉:空闲时,io口呈现低电平
浮空输入:空闲时io口状态不确定;一般用于读取数据
模拟输入:ADC/DAC
输出:
开漏输出
推挽输出:可以输出高低电平,驱动能力较强
开漏复用
推挽复用功能
通过几串语句配置就可以定义对应脚的功能,使用上非常灵活。具体还是要看些教程,了解清楚为什么这么配置,配置成这样怎么样使用,能实现什么样的功能。 我是半吊子水平,我给你说下,不对就说,别喷:
GPIO口就是普通的IO口,能输入,输出。STM32的GPIO口有些是和某些功能的接口复用的,譬如这个脚可以当普通的脚,或者当I2C总线的脚,全看设置。
当然对于简单的总线譬如I2C,有些芯片里没集成这个功能的专用芯片,那么也可以用GPIO根据I2C的时序来模拟,就是用软件来做。这是另一回事了。
washu 发表于 2022-8-25 09:36
这个概念要从最初的 CPU 说起,比如 Intel 8088,有 8 条数据线(I/O)和 12 条地址线(O),以及 R/D(O) ...
谢坛友, 看到您头像,就知道有答案了, 感谢! IO總是都是的
GPIO增強的功能,爲啥叫GPIO不清楚,P可能是可編程的意思 yubinwu 发表于 2022-8-27 20:40
IO總是都是的
GPIO增強的功能,爲啥叫GPIO不清楚,P可能是可編程的意思
P并不是programmable得意思,而是purpose(意图)的意思 其实就是叫法不同而已。楼上有坛友已经把gpio的英文全称列出来了。51简称port而已。
当然32配置端口复杂是因为功能强大。
页:
[1]