合宙Air724UG LuatOS-Air core API--pio

pio
Table of Contents
pio
pio.pin.close(pin1,pin2,…pinn)
pio.pin.plus(pin,high_us, low_us, count, idle)
pio.pin.pwm(pin,high_us, low_us, count)
pio.pin.setdir( direction,pin1,pin2,…,pinn,pin_op)
pio.pin.setpull(method,pin)
pio.pin.setdebounce(ms)
pio.pin.setval( direction,pin1,pin2,…,pinn)
pio.pin.sethigh(pin1,pin2,…,pinn)
pio.pin.setlow(pin1,pin2,…,pinn)
pio.pin.getval(pin1,pin2,…,pinn)
pio
模块管脚操作

pio.pin.close(pin1,pin2,…pinn)
关闭引脚

参数

参数 类型 释义 取值
pin1 number 第一个管脚
pin2(可选) number 第二个管脚
pinn(可选) number 第n个管脚
返回值

例子

pio.pin.close(1)

此API仅推荐给lib脚本使用,不推荐用户应用脚本使用;
用户应用脚本可以直接使用pins API,链接为:pins.close

pio.pin.plus(pin,high_us, low_us, count, idle)
通过gpio设置方波(阻塞)

参数

参数 类型 释义 取值
pin number 管脚号
high_us number 高电平持续时间(单位us)
low_us number 低电平持续时间(单位us)
count number 高电平个数
idle number 输出完成后管脚状态
返回值

例子

–gpio13 idle为低电平,输出15个高脉冲,高电平持续10us,低电平持续20us
pio.pin.plus(13,10,20,15,0)

详细指南和示例参考:指南指南

pio.pin.pwm(pin,high_us, low_us, count)
通过gpio模拟pwm(非阻塞)

参数

参数 类型 释义 取值
pin number 管脚号
high_us number 高电平持续时间(单位us)
low_us number 低电平持续时间(单位us)
count number 电平个数 -1:一直发
返回值

例子

–[[通过gpio端口持续发送一个高电平与一个低电平,且所有高电平时间相同,所有低电平时间相同。维持高电平与低电平的时间,就可以形成周期时间。占空比 = 高电平时间/周期时间
如果我们改变高低电平的持续时间,就可以完成占空比的调节,从而模拟出pwm波。]]
–gpio13 持续输出,高电平持续100us,低电平持续200us
pio.pin.pwm(13,100,200,-1)
–gpio13 关闭模拟的pwm
pio.pin.pwm(13,0,0,-1)

示例参考:示例

pio.pin.setdir( direction,pin1,pin2,…,pinn,pin_op)
设置管脚的方向

历史记录

修改时间 修改内容 版本要求 备注
2021.07.28 脉冲检测模式 >3101
参数

参数 类型 释义 取值
direction number 管脚方向,(可选) pio.INPUT,pio.OUTPUT,pio.INT
pin1 number 第一个管脚
pin2 number 第2个管脚(可选)
pin3 number 第3个管脚(可选)
pinn number 第n个管脚(可选)
pin_op number 引脚功能,(可选) pio.FIFO为脉冲检测模式,pio.CONT为统计脉冲个数(频率超过1.5kHz会有漏检和误差过大的情况)
返回值

示例参考:示例

pio.pin.setpull(method,pin)
配置IO口默认状态

参数

参数 类型 释义 取值
method number pio.PULLUP:上拉模式 。pio.PULLDOWN:下拉模式。pio.NOPULL:高阻态
pin number 配置管脚
返回值

例子

pio.pin.setpull(pio.PULLUP,pio.P0_5) --配置为上拉
–pio.pin.setpull(pio.PULLDOWN,pio.P0_5) --配置为下拉
–pio.pin.setpull(pio.NOPULL,pio.P0_5) --不配置上下拉

此API仅推荐给lib脚本使用,不推荐用户应用脚本使用;
用户应用脚本可以直接使用pins API,链接为:pins.setup

pio.pin.setdebounce(ms)
配置IO口防抖时间

参数

参数 类型 释义 取值
ms number 防抖时间,0为关闭消抖功能,开机后默认为20ms
返回值

例子

pio.pin.setdebounce(20) --延时消抖设置为20ms
pio.pin.setdebounce(5) --延时消抖设置为5ms
pio.pin.setdebounce(0) --关闭延时消抖功能

示例参考:示例

pio.pin.setval( direction,pin1,pin2,…,pinn)
设置管脚的输出状态

参数

参数 类型 释义 取值
direction number 管脚状态,可选0或1
pin1 number 第一个管脚
pin2 number 第2个管脚(可选)
pin3 number 第3个管脚(可选)
pinn number 第n个管脚(可选)
返回值

此API仅推荐给lib脚本使用,不推荐用户应用脚本使用;
用户应用脚本可以直接使用pins API,链接为:pins.setup

pio.pin.sethigh(pin1,pin2,…,pinn)
设置管脚为高电平(1)

参数

参数 类型 释义 取值
pin1 number 第一个管脚
pin2 number 第2个管脚(可选)
pin3 number 第3个管脚(可选)
pinn number 第n个管脚(可选)
返回值

pio.pin.setlow(pin1,pin2,…,pinn)
设置管脚为低电平(0)

参数

参数 类型 释义 取值
pin1 number 第一个管脚
pin2 number 第2个管脚(可选)
pin3 number 第3个管脚(可选)
pinn number 第n个管脚(可选)
返回值

pio.pin.getval(pin1,pin2,…,pinn)
读取管脚的状态

历史记录

修改时间 修改内容 版本要求 备注
2021.07.28 脉冲检测功能 >3101
参数

参数 类型 释义 取值
pin1 number 第一个管脚
pin2 number 第2个管脚(可选)
pin3 number 第3个管脚(可选)
pinn number 第n个管脚(可选)
返回值

返回值

类型 释义 取值
当pio.pin.setdir()不传pin_op时 number 管脚状态 0表示低电平,1表示高电平
当pio.pin.setdir()中参数pin_op传pio.FIFO时 table 脉冲检测模式
当pio.pin.setdir()中参数pin_op传pio.CONT时 table 统计脉冲个数
例子

例子

当pio.pin.setdir()不传pin_op时

pin1, pin2, …, pinn = pio.pin.getval( pin1, pin2, …, pinn )

当pio.pin.setdir()中参数pin_op传pio.FIFO时

table = pio.pin.getval( pin1, pin2, …, pinn )
表的格式为
{
{
edge = 0, – 下降沿
delta = 10, – 离上次变化的事件(单位us)
},
{
edege = 1, – 上升沿
delta = 20, – 离上次变化的事件(单位us)
},

}

当pio.pin.setdir()中参数pin_op传pio.CONT时

table = pio.pin.getval( pin1, pin2, …, pinn )
表的格式为
{
low = 10, – 低电平个数
high = 10, – 高电平个数
duration = 2000000, – 距上次读取的时间(单位us)
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l531798151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值