5.1.2. GPIO控制
OpenMV具有9个(OpenMV M4)到10个(OpenMV M7)板载通用I / O引脚, 用于与现实世界交谈。我们可能会保持这个数量,以保持OpenMV Cam微小。
无论如何,有几种方法可以使用GPIO引脚。
5.1.2.1. 作为输入
要使用GPIO引脚作为输入,只需要:
import pyb
p = pyb.Pin("P0", pyb.Pin.IN)
p.value() # Returns 0 or 1.
该 pyb.Pin()
构造函数创建一个pin对象,您将用它来控制你的OpenMV的I / O引脚。 你传递给OpenMV凸轮该字符串应该是 P
,然后OpenMV M4为 0-8
和 OpenMV M7为 0-9
。
一旦你创建了GPIO引脚,使用该 pyb.Pin.value()
方法来获得IO引脚的状态。
最后,如果需要上拉或下拉IO引脚, 传递 pyb.Pin.PULL_UP
或 pyb.Pin.PULL_DOWN
作为 pyb.Pin()
构造函数的附加参数:
p = pyb.Pin("P0", pyb.Pin.IN, pyb.Pin.PULL_UP)
5.1.2.2. 作为输出
现在,要使用GPIO引脚作为输出,只需要:
import pyb
p = pyb.Pin("P0", pyb.Pin.OUT_PP)
p.high() # or p.value(1) to make the pin high (3.3V)
p.low() # or p.value(0) to make the pin low (0V)
就这么简单!然而,如果你想设置开漏输出呢?这样做:
p = pyb.Pin("P0", pyb.Pin.OUT_OD)
现在 pyb.Pin.high()
将引起引脚拉高,同时 pyb.Pin.low()
将引脚拉低。如果你需要一个引脚上的上拉电阻只需添加:
p = pyb.Pin("P0", pyb.Pin.OUT_OD, pyb.Pin.PULL_UP)
… 到构造函数。
STM32单片机输出四种形式:
1、普通推挽输出(GPIO_Mode_Out_PP):
使用场合:一般用在0V和3.3V的场合。线路经过两个P_MOS 和N_MOS 管,负责上拉和下拉电流。
使用方法:直接使用
输出电平:推挽输出的低电平是0V,高电平是3.3V。
2、普通开漏输出(GPIO_Mode_Out_OD):
使用场合:一般用在电平不匹配的场合,如需要输出5V的高电平。单片机仅输出3.3V
使用方法:就需要再外部接一个上拉电阻,电源为5V,把GPIO设置为开漏模式, 当输出高组态时,由上拉电阻和电源向外输出5V的电压。
输出电平:在开漏输出模式时,如果输出为0,低电平,则使N_MOS 导通,使输 出接地。若控制输出为1(无法直接输出高电平),则既不输出高电平 也不输出低电平,为高组态。为正常使用,必须在外部接一个上拉电 阻。
特性: 它具“线与”特性,即很多个开漏模式 引脚连接到一起时,只有当所有 引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部 上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当 于短路接地,使得整条线路都为低电平,0 伏。
3、复用推挽输出(GPIO_Mode_AF_PP):用作串口的输出。
4、复用开漏输出(GPIO_Mode_AF_OD):用在IIC。
所有的开漏输出都需要接上拉电阻。