全部文档
OneOS简介 硬件支持 快速开发指南 编译构造工具 API参考文档 高级语言 用户编程手册 应用笔记 FAQ

class machine.Pin

machine.Pin 类是 machine 模块下面的一个硬件类,用于对 GPIO 引脚的配置和控制,并提供对 Pin 设备的操作方法。

Pin 对象用于控制 GPIO 引脚。通常与一个物理引脚相关联,他可以驱动输出电平和读取输入电平。Pin 类中有设置引脚模式(输入/输出)的方法,也有获取和设置引脚电平的方法。

Pin 对象不用于引脚的复用,只用于 GPIO 输入与输出模式,对于复用模式可直接使用对应功能的类对象进行使用。

常量

类型 常量名称 含义
引脚模式 Pin.IN 设置为输入模式
Pin.OUT_PP 设置为推挽输出模式
Pin.OUT_OD 设置为开漏输出模式
中断触发类型 Pin.IRQ_RISING 外部中断模式:上升沿触发中断
Pin.IRQ_FALLING 外部中断模式:下降沿触发中断
Pin.IRQ_RISING_FALLING 外部中断模式:上升和下降沿触发中断
Pin.IRQ_LOW_LEVEL 外部中断模式:低电平触发
Pin.IRQ_HIGH_LEVEL 外部中断模式:高电平触发
Pin.IRQ_NONE 无中断
上/下拉模式 Pin.PULL_DOWN 选择上/下拉模式:使能下拉电阻
Pin.PULL_NONE 选择上/下拉模式:没有上拉或者下拉电阻
Pin.PULL_UP 选择上/下拉模式:使能上拉电阻

构造函数

构造函数 class machine.Pin(id, mode = -1,value=-1, pull = -1)
功能 构造一个 Pin 对象
参数说明 id:可采用元组形式(name,pin)传入参数或者只传 pin 参数,其中 name 为自定义的引脚名,pin 为设备驱动的引脚号(soc 芯片的引脚)
mode:指定引脚模式,可选常量见 Pin 常量中引脚模式部分相关常量。
value:如果配置成输出形式,可以通过这个参数设定初始输出值,可传入逻辑 0 或者逻辑 1
pull:如果引脚可以软件配置上下拉电阻,通过这个参数指定上下拉模式
返回值 返回创建的 machine.Pin 类对象

注:1、mode 目前暂不需支持 ALT_PP、ALT_OD、ANALOG。

​ 2、value 只对模式为 OUT_PP、OUT_OD 有效。

​ 3、port 中传入的引脚号为原理图中的引脚编号

​ 4、并不是所有引脚都可设置为指定的模式,用户需参照 datasheet 配合使用,避免设置不生效或返回异常。

类方法

machine.Pin 类包括如下类方法

方法名 说明
class method Pin.dict () 获取引脚映射器字典

详细说明如下:

方法名称 classmethod Pin.dict()
功能 获取引脚映射器字典
参数说明
返回值 返回获取的引脚映射器字典,如{PA1:pin3,PA2:pin4}

实例方法

machine.Pin 类包括如下实例方法

方法名 说明
Pin.init() 初始化 Pin 对象
Pin.deinit() 关闭 Pin 对象
Pin.value() 获取/设置引脚逻辑电平
Pin.name() 获取构造时用户自定义的引脚名
Pin.pin() 获取构造时设置的 pin 引脚号
Pin.port() 获取 pin 引脚对应的端口号
Pin.mode() 获取/设置引脚模式
Pin.irq() 获取/设置引脚的中断模式

详细说明如下:

方法名称 Pin.init(mode = -1, value=-1, pull = -1)
功能 根据参数重新初始化引脚配置
参数说明 mode:指定引脚模式
value:如果配置成输出形式,可以通过这个参数设定初始输出值,可传入逻辑 0 或者逻辑 1
pull:如果引脚可以软件配置上下拉电阻,通过这个参数指定上下拉模式,参数可选 Pin 常量中上/下拉模式部分相关常量
返回值 固定返回 None

注:只有那些被指定的参数才会被设置,其余引脚的状态将保持不变,value 值只对模式为 OUT_PP、OUT_OD 有效。

方法名称 Pin.deinit()
功能 关闭 Pin 对象
参数说明 无参数
返回值 固定返回 None

注:关闭 Pin 对象后,需重新 init 才能正常使用 Pin 对象。

方法名称 Pin.value([x])
功能 获取/设置引脚逻辑电平
参数说明 [x]为可选参数,若未给定参数则为读取当前引脚的值,若给定参数则为设定引脚的值,可传入逻辑 0 或逻辑 1
返回值 没有参数时返回引脚的逻辑电平 有参数时返回 None
异常值描述 当引脚模式为非输出模式时,若进行电平 value 值设置,会引起 ModeNotMatchError 异常,并携带异常值 1。
方法名称 Pin.name()
功能 获取构造时用户自定义的引脚名
参数说明 无参数
返回值 返回用户自定义的引脚名
方法名称 Pin.pin()
功能 获取构造时设置的 pin 引脚号
参数说明 无参数
返回值 返回构造时设置的 pin 引脚号
方法名称 Pin.port()
功能 获取 pin 引脚对应的 port 端口号
参数说明 无参数
返回值 返回 pin 引脚对应的 port 端口号
方法名称 Pin. mode([mode])
功能 获取/设置当前引脚的模式
参数说明 [mode]为可选参数,若未给定参数则为读取当前引脚的配置模式,若给定参数则为设定引脚的模式,可传入参数见 Pin 常量中引脚模式部分相关常量。
返回值 无参数时,返回当前引脚模式,形式为 int 类型,其值与对应模式常量之一匹配; 有参数时返回 None。

注:当 mode 重新设置时,该引脚其他状态可能会无效,如中断模式、输出电平等。

方法名称 Pin.irq([irqmode])
功能 获取/设置引脚的中断模式
参数说明 [irqmode]为可选参数,若未给定参数则为读取当前引脚的 中断配置模式,若给定参数则为设定引脚的中断模式,可 传入参数见 Pin 常量中中断触发类型部分相关常量,模式 可按位进行或’|’操作。
返回值 传入参数时,固定返回 None 无参数时,返回当前的中断触发类型,其返回值为中断触 发类型部分相关常量对应值或者经过或运算后的值
异常值描述 当中断模式不支持配置时,会触发 AttributeError,若为驱动不支持该配置,携带异常值 1,若为芯片引脚本身不支持,携带异常值 2。

注:1、若不进行 irq 配置,pin 引脚默认为无中断模式,即 Pin.IRQ_NONE;

​ 2、并不是所有引脚均支持中断配置;

​ 3、中断模式支持按位或’|’操作

results matching ""

    No results matching ""