OPENMV CAM H7(M4) GPIO控制

↘锁芯ラ 提交于 2020-03-11 16:55:11

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。

 

所有的开漏输出都需要接上拉电阻。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!