pio === 作者:吴永 更新时间:2020年8月8日 关键字:GPIO、管脚操作、GPIO中断、PIN、脉冲 @[TOC] .. _pio-1: pio --- 模块管脚操作 pio.pin.setdir() ~~~~~~~~~~~~~~~~ 设置管脚的方向 - 语法 ``pio.pin.setdir( direction,pin1,pin2,...,pinn)`` - 参数 ========== ============================================== 参数 释义 ========== ============================================== direction 管脚方向,可选pio.INPUT , pio.OUTPUT, pio.INT pin1 第一个管脚 pin2(可选) 第二个管脚 pinn(可选) 第n个管脚 ========== ============================================== - 返回值 无 -------------- pio.pin.setval() ~~~~~~~~~~~~~~~~ 设置管脚的输出状态 - 语法 ``pio.pin.setval(value,pin1,pin2,...,pinn)`` - 参数 ============ ================== 参数 释义 ============ ================== value 管脚状态,可选0或1 pin1 第一个管脚 pin2(可选) 第二个管脚 pinn(可选) 第n个管脚 ============ ================== - 返回值 无 -------------- pio.pin.getval() ~~~~~~~~~~~~~~~~ 读取管脚的状态 - 语法 ``val1, val2, ..., valn = pio.pin.getval( pin1, pin2, ..., pinn )`` - 参数 ========== ========== 参数 释义 ========== ========== pin1 第一个管脚 pin2(可选) 第二个管脚 pinn(可选) 第n个管脚 ========== ========== - 返回值 number类型,0表示低电平,1表示高电平 -------------- pio.pin.sethigh() ~~~~~~~~~~~~~~~~~ 设置管脚为高电平(1) - 语法 ``pio.pin.sethigh(pin1,pin2,...,pinn)`` - 参数 ========== ========== 参数 释义 ========== ========== pin1 第一个管脚 pin2(可选) 第二个管脚 pinn(可选) 第n个管脚 ========== ========== - 返回值 无 -------------- pio.pin.setlow() ~~~~~~~~~~~~~~~~ 设置管脚为低电平(0) - 语法 ``pio.pin.setlow(pin1,pin2,...,pinn)`` - 参数 ========== ========== 参数 释义 ========== ========== pin1 第一个管脚 pin2(可选) 第二个管脚 pinn(可选) 第n个管脚 ========== ========== - 返回值 无 -------------- pio.pin.setpull() ~~~~~~~~~~~~~~~~~ 配置IO口默认状态 - 语法 ``pio.pin.setpull(method,pin)`` - 参数 ====== ================================================================= 参数 释义 ====== ================================================================= method pio.PULLUP:上拉模式 。pio.PULLDOWN:下拉模式。pio.NOPULL:高阻态 pin 配置管脚 ====== ================================================================= - 返回值 无 - 例子 .. code:: lua pio.pin.setpull(pio.PULLUP,pio.P0_5) --配置为上拉 --pio.pin.setpull(pio.PULLDOWN,pio.P0_5) --配置为下拉 --pio.pin.setpull(pio.NOPULL,pio.P0_5) --不配置上下拉 -------------- pio.pin.setdebounce() ~~~~~~~~~~~~~~~~~~~~~ 配置IO口防抖时间 - 语法 ``pio.pin.setdebounce(ms)`` - 参数 ==== =========================================== 参数 释义 ==== =========================================== ms 防抖时间,0为关闭消抖功能,开机后默认为20ms ==== =========================================== - 返回值 无 - 例子 .. code:: lua pio.pin.setdebounce(20) --延时消抖设置为20ms pio.pin.setdebounce(5) --延时消抖设置为5ms pio.pin.setdebounce(0) --关闭延时消抖功能 -------------- pio.pin.close() ~~~~~~~~~~~~~~~ 配置IO口防抖时间 - 语法 ``pio.pin.close(pin1,pin2,...,pinn)`` - 参数 ========== ========== 参数 释义 ========== ========== pin1 第一个管脚 pin2(可选) 第二个管脚 pinn(可选) 第n个管脚 ========== ========== - 返回值 无 - 例子 .. code:: lua pio.pin.close(1) -------------- pio.pin.plus() ~~~~~~~~~~~~~~ 配置IO口防抖时间 - 语法 ``pio.pin.plus(pin,high_us, low_us, count, idle)`` - 参数 ======= ======================== 参数 释义 ======= ======================== pin 管脚号 high_us 高电平持续时间(单位us) low_us 低电平持续时间(单位us) count 高电平个数 idle 输出完成后管脚状态 ======= ======================== - 返回值 无 - 例子 .. code:: lua --gpio13 idle为低电平,输出15个高脉冲,高电平持续10us,低电平持续20us pio.pin.plus(13,10,20,15,0)