LuatOS-SOC接口文档(air780E)-- ioqueue - io序列操作

2023-10-20 08:44

本文主要是介绍LuatOS-SOC接口文档(air780E)-- ioqueue - io序列操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ioqueue.init(hwtimer_id,cmd_cnt,repeat_cnt)

初始化一个io操作队列

参数

传入值类型

解释

int

硬件定时器id,默认用0,根据实际MCU确定,air105为0~5,与pwm共用,同一个通道号不能同时为pwm和ioqueue

int

一个完整周期需要的命令,可以比实际的多

int

重复次数,默认是1,如果写0则表示无限次数循环

return

返回值

例子

ioqueue.init(0,10,5) --以timer0为时钟源初始化一个io操作队列,有10个有效命令,循环5次

ioqueue.setdelay(hwtimer_id,time_us,time_tick,continue)

对io操作队列增加延时命令

参数

传入值类型

解释

int

硬件定时器id

int

延时时间,0~65535us

int

延时微调时间,0~255tick,总的延时时间是time_us * 1us_tick + time_tick

boolean

是否连续是连续延时,默认否,如果是,定时器在时间到后不会停止而是重新计时,

返回值

例子


ioqueue.delay(hwtimer_id)

对io操作队列增加一次重复延时,在前面必须有setdelay且是连续延时

参数

传入值类型

解释

int

硬件定时器id

return

返回值

例子

ioqueue.setdelay(0,9,15,true) --延时9us+15个tick,在之后遇到delay命令时,会延时9us+15个tick
ioqueue.delay(0)

ioqueue.setgpio(hwtimer_id,pin,is_input,pull_mode,init_level)

对io操作队列增加设置gpio命令

参数

传入值类型

解释

int

硬件定时器id

int

pin

boolean

是否是输入

int

上下拉模式,只能是0,gpio.PULLUP,gpio.PULLDOWN

int

初始输出电平

return

返回值

例子

ioqueue.setgpio(0,pin.PB01,true,gpio.PULLUP,0) --PB01设置成上拉输入
ioqueue.setgpio(0,pin.PB01,false,0,1)--PB01设置成默认上下拉输出高电平

ioqueue.input(hwtimer_id,pin)

对io操作队列增加读取gpio命令

参数

传入值类型

解释

int

硬件定时器id

int

pin

return

返回值

例子

ioqueue.input(0,pin.PB01)

ioqueue.output(hwtimer_id,pin,level)

对io操作队列增加输出GPIO命令

参数

传入值类型

解释

int

硬件定时器id

int

pin

int

输出电平

return

返回值

例子

ioqueue.output(0,pin.PB01,0)

ioqueue.setcap(hwtimer_id,pin,pull_mode,irq_mode,max_tick)

对io操作队列增加设置捕获某个IO命令

参数

传入值类型

解释

int

硬件定时器id

int

pin

int

上下拉模式,只能是0,gpio.PULLUP,gpio.PULLDOWN

int

中断模式,只能是gpio.BOTH,gpio.RISING,gpio.FALLING

int

定时器最大计时时间 考虑到lua是int类型,最小0x10000, 最大值为0x7fffffff,默认为最大值

return

返回值

例子

ioqueue.setcap(0,pin.PB01,gpio.PULLUP,gpio.FALLING,48000000)

ioqueue.capture(hwtimer_id)

对io操作队列增加捕获一次IO状态命令

参数

传入值类型

解释

int

硬件定时器id

return

返回值

例子

ioqueue.capture(0)

ioqueue.capend(hwtimer_id,pin)

对io操作队列增加结束捕获某个IO命令

参数

传入值类型

解释

int

硬件定时器id

int

pin

return

返回值

例子

ioqueue.capend(0,pin.PB01)

ioqueue.get(hwtimer_id, input_buff, capture_buff)

  • 获取io操作队列中输入和捕获的数据

参数

传入值类型

解释

int

硬件定时器id

zbuff

存放IO输入数据的buff,按照1byte pin + 1byte level 形式存放数据

zbuff

存放IO捕获数据的buff,按照1byte pin + 1byte level + 4byte tick形式存放数据

返回值

返回值类型

解释

int

返回多少组IO输入数据

int

返回多少组IO捕获数据

例子

local input_cnt, capture_cnt = ioqueue.get(0, input_buff, capture_buff)

ioqueue.start(hwtimer_id)

启动io操作队列

参数

传入值类型

解释

int

硬件定时器id

return

返回值

例子

ioqueue.start(0)

ioqueue.stop(hwtimer_id)

停止io操作队列,可以通过start从头开始

参数

传入值类型

解释

int

硬件定时器id

返回值

返回值类型

解释

int

返回已经循环的次数,如果是0,表示一次循环都没有完成

int

返回单次循环中已经执行的cmd次数,如果是0,可能是一次循环刚刚结束

例子

ioqueue.stop(0)

ioqueue.release(hwtimer_id)

释放io操作队列的资源,下次使用必须重新init

参数

传入值类型

解释

int

硬件定时器id

return

返回值

例子

ioqueue.clear(0)

ioqueue.clear(hwtimer_id)

清空io操作队列

参数

传入值类型

解释

int

硬件定时器id

return

返回值

例子

ioqueue.clear(0)

ioqueue.done(hwtimer_id)

检测io操作队列是否已经执行完成

参数

传入值类型

解释

int

硬件定时器id

返回值

返回值类型

解释

boolean

队列是否执行完成,

例子

local result = ioqueue.done(0)

ioqueue.exti(pin,pull_mode,irq_mode,onoff)

启动/停止一个带系统tick返回的外部中断

参数

传入值类型

解释

int

pin

int

上下拉模式,只能是0,gpio.PULLUP,gpio.PULLDOWN

int

中断模式,只能是gpio.BOTH,gpio.RISING,gpio.FALLING

boolean

开关,默认是false关

return

返回值

例子

ioqueue.exti(pin.PB01, gpio.PULLUP, gpio.BOTH, true)
ioqueue.exti(pin.PB01)

这篇关于LuatOS-SOC接口文档(air780E)-- ioqueue - io序列操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/246007

相关文章

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3