基础实验——GPIO

基础实验——GPIO

GPIO(英语:General-purposeinput/output),通用型之输入输出的简称,接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)。
前面用的LED和按键实验背后原理都是通过GPIO实现的,只是被提前封装好的,我们可以直接调用。下面就完整地介绍GPIO的使用。


定义GPIO

首先我们需要导入pyb中的Pin模块,然后就可以定义一个Pin对象, 及其使用的引脚和功能。

from pyb import Pin
cs = Pin(Pin.cpu.A0)    #定义GPI
cs.init(Pin.OUT)        #初始化GPIO

在 MicroPython中,可以用init()函数去设置Pin的功能,除了通用输出外,还可以设置推挽方式输出和开漏输出:

cs.init(Pin.OUT)         #设置为通用输出
cs.init(Pin.OUT_PP)      #设置为推挽方式输出
cs.init(Pin.OUT_OD)      #设置为开漏方式输出
cs.init(Pin.IN)          #设置输入

推挽输出,电子专业名词,一般出现在推挽放大器电路中,可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止
开漏输出,开漏电路概念中提到的"漏"就是指MOS FET的漏极。同理,开集电路中的"集"就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。

对于输入,还可以设置内部的上拉下拉电阻状态,比如设置上拉电 阻的方法是:

cs.init(Pin.IN,pull=PULL_UP) #设置输入,并使用内部上拉电阻

需要下拉电阻时设置pull参数为:pull=PULL_DOWN,而不需要上 拉下拉电阻时就设置pull=PULL_NONE。

使用方法

上面是将 GPIO 的定义和模式分开设置的,这样比较好理解。但是 通常情况下,我们会将它们放在一起定义,这样更加简洁高效,

from pyb import Pin
cs = Pin("B1",Pin.OUT_PP)
cs = Pin("B1",Pin.IN,pull=PULL_UP)

对于GPIO的输出,我们可以使用下面方法控制:

cs.high()   #设置高电平
cs(1)
cs.low()    #设置低电平
cs(0)

电子电路中高电平是电压高的状态,一般记为1

电子电路中低电平是电压低的状态,一般记为0

也可以使用value()函数设置输出电平:

cs.value(1)   #设置高电平
cs.value(0)   #设置低电平

对于GPIO的输入,可以直接读取:

cs()

或者使用不带参数的value()函数:

cs.value()

如果是高电平返回1,低电平返回0。

实例

用定义引脚的方式控制按键和LED灯。要注意的是开发板LED标注的D4~D7实际引脚是如下面原理图所示。

字母对应引脚
D4A13
D5A14
D6A15
D7B4

在这里插入图片描述

Created with Raphaël 2.2.0 调用PIN 定义LED为输出,按键为输入 按键控制LED 若按下则点亮 LED(1),松下关闭 yes
from pyb import Pin
#将 LED(1)-"A13"配置成推挽输出模式
p_out=Pin('A13',Pin.OUT_PP)
#将 USR 按键-"X17"配置为输入方式
p_in = Pin('X17', Pin.IN, Pin.PULL_UP)
while True:
    if p_in.value()==0:
        p_out.high() #点亮 LED(1)红灯
    else:
        p_out.low() #关闭 LED(1)红灯
相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页