GPIO
(General Purpose Input Output
)在做嵌入式开发是最基本的,前面使用的LED
,按键,等,都是通过GPIO
来实现的。pyboard
当然也不例外,也提供了GPIO
,实际就是使用板载stm32
芯片的GPIO
。MicroPython
的GPIO
使用是定义在pyb.Pin
包下。
每一个 GPIO
,我们可以控制其输出的高低电平,读取电平值,设置引脚模式(输入,输出等),当然也可以作为模拟接口,以及复用为其他外设端口。
1. Pin类
class pyb.Pin(id, ...)
说明: 引脚类定义,创建引脚对象,传入的参数用于初始化Pin对象,具体在pin.init()
中执行。
2. Pin类的静态方法
classmethod Pin.debug([state])
说明: 获取或设置调试状态(True
为打开,False
为关闭)。
classmethod Pin.dict([dict])
说明: 获取或者设置引脚映射字典,就是获取或设置各个引脚的映射名称,这样可以方便初始化Pin时确定引脚。
classmethod Pin.mapper([fun])
说明: 获取或设置引脚映射函数。
3. Pin类的成员方法
Pin.init(mode, pull=Pin.PULL_NONE, \*, value=None, alt=-1)
说明: 初始化函数是最重要的,用于初始化引脚。参数说明:
mode
—设置引脚模式:
- Pin.IN
:输入模式
- Pin.OUT_PP
:配置用于输出的引脚,并使用推挽模式
- Pin.OUT_OD
:配置引脚输出,采用开漏模式
- Pin.AF_PP
:复用,推挽模式
- Pin.AF_OD
:复用,开漏模式
- Pin.ANALOG
:模拟输入输出
pull
—设置引脚模式:
- Pin.PULL_NONE
:无上下拉
- Pin.PULL_UP
:上拉
- Pin.PULL_DOWN
:下拉
value
—如果不是None
,则会在初始化设置引脚的值
alt
—设置引脚的复用功能。该参数仅仅在mode
为Pin.AF_PP
或者Pin.AF_OD
下才可以。我们可以通过该参数设置引脚具体复用为某个外设,例如ADC
,SUART
等。
return
—返回值为None
Pin.value([value])
说明: 获取或者设置引脚电平,当value
参数没有给定,则会返回引脚电平值。高电平为True
,低电平为False
。如果value
给定,只要value
可以转化为布尔型,则会设置引脚电平,True
对应高电平,False
对应低电平。
Pin.__str__()
说明: 返回描述引脚对象的字符串。
Pin.af()
说明: 返回引脚的复用功能。
Pin.af_list()
说明: 返回该引脚的所有可以复用功能,是一个数组。
Pin.gpio()
说明: 返回该引脚关联的GPIO
块的基址。
Pin.mode()
说明: 返回该引脚所配置的模式,取值同init
函数的mode
参数取值。
Pin.name()
说明: 返回该引脚的名称。
Pin.names()
说明: 返回该引脚的板子上和CPU
上的名称。
Pin.pin()
说明: 返回该引脚的引脚号。
Pin.port()
说明: 返回该引脚的端口pin port
。
Pin.pull()
说明: 返回该引脚所配置的上下拉模式,取值同init
函数的pull
参数取值。
以下是一些常数:
序号 | 名称 | 说明 |
---|---|---|
1 | Pin.AF_OD | 开漏模式 复用模式 |
2 | Pin.AF_PP | 推挽模式 复用模式 |
3 | Pin.ANALOG | 模拟模式 |
4 | Pin.IN | 输入模式 |
5 | Pin.OUT_OD | 开漏模式 输出模式 |
6 | Pin.OUT_PP | 推挽模式 输出模式 |
7 | Pin.PULL_DOWN | 下拉电阻模式 |
8 | Pin.PULL_NONE | 无上下拉电阻 |
9 | Pin.PULL_UP | 上拉电阻模式 |