虽然我们定义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种状态。
分别是高电平,低电平,浮空/高阻态。
推挽输出
有高低信号状态的叫推挽
开漏输出
有低电和悬空/高阻态状态的叫开漏
所以明白为什么我们日常使用GPIO输出是,定义的推挽模式了么~