【外设零基础通用教程】GPIO 下
- 使用方法
- GPIO 值
- 输入读取值
- 输出设置值
- GPIO输入输出应用
- GPIO输入应用
- GPIO输出应用
- 文档使用
- 理论补充
- 输出方式
- 推挽输出
- 开漏输出
上篇连接:【外设零基础通用教程】GPIO 上,主要是在做视频的时候,发现上篇理论很多,分开的话结构清晰一些,更方便观看。
虽然我们定义GPIO的输入输出,那我们这种按键和LED都有两种状态,按下了和没按下,亮了和没亮,这怎么表示?
使用方法
GPIO 值
在电子电路中,分别用1和0记录电压高低状态!!!
#对于GPIO的输入,可以直接读取:
cs.value() # 返回1或者0
#对于GPIO的输出,我们可以使用下面方法控制:
cs.high() #设置高电平
cs(1) # 1为高电平
cs.low() #设置低电平
cs(0) # 0为低电平
输入读取值
比如说,按钮按下后给了开发板一个值1,开发板收到这个状态的得时候就知道这个按键被按下了。
那么我按下的时候读取的值就为1。其实就是简单的记录状态。
输出设置值
这个理解就简单了,LED收到高电平信号1的时候就量,低电平0的时候就灭。所以呀我们就设置这个引脚的高低状态就行了~
注意:上面仅是GPIO这个外设引脚可以这样理解,像什么IIC,SPI这种,这么理解可能就~
GPIO输入输出应用
GPIO输入应用
祖传按键
from pyb import Pin
#将 USR 按键-"X17"配置为输入方式
p_in = Pin('X17', Pin.IN, Pin.PULL_UP)
p_in.value()
GPIO输出应用
祖传点灯
from pyb import Pin
#将 LED(1)-"A13"配置成推挽输出模式
p_out=Pin('A13',Pin.OUT_PP)
#点亮 LED(1)红灯
p_out.high()
好了,我们现在就可以直接做简单按键控制和LED灯控制了。~就这么简单。
文档使用
我们之前说过,由于封装不同,GPIO的写法也不同。所以买板子之前一定先看看文档。如micpython和maixpy对GPIO的写法如下(这俩都是python哈)
理论补充
输出方式
GPIO的输出和内部MOS关的开关有关,如下图。可知输出有3种状态。
分别是高电平,低电平,浮空/高阻态。
冒烟状态就是直接G了,厂家要出厂这种开发板,不得被打死。这里指代不会出现的情况,不做考虑
推挽输出
推挽输出,电子专业名词,一般出现在推挽放大器电路中,可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。
有高低信号状态的叫推挽
VCC是电,开发板内部给传感器放电就是高电平
GND是地,是传感器给开发板内部放电就是低电平
“高电流向低电doge 上面把是付出把电推出去,下面是回首掏简称挽”
简单这么理解就行了。
开漏输出
开漏输出,开漏电路概念中提到的"漏"就是指MOS FET的漏极。同理,开集电路中的"集"就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。
有低电和悬空/高阻态状态的叫开漏
上面的P-MOS不是没有了,而是这种状态下和P-MOS没啥关系,为了方便看,我给删了。
你瞅瞅,现在的情况是只有地(GND)只能传感器给他电,有低电平状态。如果N-MOS关掉后相当于电阻无限大(谁也不给谁电,谁也动不了,相当于没有电流在动。)所以这个状态下,输出的是低电平和浮空/高阻态。
所以明白为什么我们日常使用GPIO输出是,定义的推挽模式了么~