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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/116952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 基础 面试 多线程

1.多线程 1.1 线程(Thread) 线程时一个程序内部的一条执行流程,java的main方法就是由一条默认的主线程执行 1.2 多线程 多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行) 许多平台都离不开多…

【Matlab笔记_17】查找数组中相同元素

案例一:找到数组中相同元素所在位置索引 方法:使用unique函数用于找到唯一的元素和它们在原数组中的索引。然后,histc函数用于计算每个唯一元素的出现次数,并通过ismember函数找到重复元素在原数组中的索引。最后,通过…

动手学深度学习—网络中的网络NiN(代码详解)

目录 1. NiN块2. NiN模型3. 训练模型 LeNet、AlexNet和VGG都有一个共同的设计模式: 通过一系列的卷积层与汇聚层来提取空间结构特征;然后通过全连接层对特征的表征进行处理。 如果在过程的早期使用全连接层,可能会完全放弃表征的空间结构。 …

Day 1 Vue 页面框架

现在前端框架越来越像后端了,特别是TypeScript这样的语言出现后,开发前端的体验跟后端渐渐接近了。当然,作为一个后端,直接上手前端,还是有很多坑要填的。 本次开发,前端页面框架直接选择Vue。原因很简单&…

深入浅出排序算法之归并排序

目录 1. 归并排序的原理 1.1 二路归并排序执行流程 2. 代码分析 2.1 代码设计 3. 性能分析 4. 非递归版本 1. 归并排序的原理 “归并”一词的中文含义就是合并、并入的意思,而在数据结构中的定义是将两个或者两个以上的有序表组合成一个新的有序表。 归并排序…

Python-pptx教程之一从零开始生成PPT文件

简介 python-pptx是一个用于创建、读取和更新PowerPoint(.pptx)文件的python库。 典型的用途是根据动态内容(如数据库查询、分析数据等),将这些内容自动化生成PowerPoint演示文稿,将数据可视化&#xff0c…

hutool 工具类提高编码效率

hutool 工具类 hutool 依赖 引入 hutool 依赖包。 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.6</version> </dependency>StrUtil 常用方法&#xff1a; StrUtil.equals&…

【IDEA配置】IDEA配置

参考视频&#xff1a;【idea必知必会】优化设置 告别卡顿 1. 显示内存 右击底下空白区域&#xff0c;出现memory indicator内存指示器&#xff0c;点击勾选即可显示。有的是在Settings->Appearance->Window Options里&#xff0c;如图所示&#xff1a; 2. 内存设置 …

虚拟世界游戏定制开发:创造独一无二的虚拟体验

在游戏开发领域&#xff0c;虚拟世界游戏定制开发是一项引人注目的任务&#xff0c;旨在满足客户独特的需求和愿景&#xff0c;创造一个完全个性化的虚拟世界游戏。这种类型的游戏开发需要专业的技能、深刻的游戏开发知识和密切的与客户合作&#xff0c;以确保游戏满足客户的期…

数据库Redis(二):基本数据类型

Redis中采用Key-Value键值对的形式将数据存储在数据库中&#xff0c;首先介绍Redis中针对键Key的操作命名。 Redis键Key相关命令 # 查看当前库所有key keys * # 判断某个key是否存在 exists <key> # 查看你的key是什么类型 type <key> # 删除指定的key数据 …

uboot移植之环境变量bootargs

一. 简介 uboot 中有两个非常重要的环境变量 bootcmd 和 bootargs。本文来学习 uboot的环境变量 bootargs。 bootargs 环境变量也叫命令行参数。bootargs 保存着 uboot 传递给 Linux 内核的参数。 二. uboot移植之环境变量bootargs 环境变量 bootargs 的设置是在 mx6ull_al…

CI2454 2.4g无线MCU芯片应用

Ci2454集成MCU芯片 | Ci2454是一款集成无线收发器和 8 位 RISC&#xff08;精简指令集&#xff09;MCU 的SOC芯片。 #Ci2454芯片 集成MCU芯片# 中国芯片# 无线收发器特性&#xff1a; 工作在 2.4GHz ISM 频段 调制方式&#xff1a;GFSK/FSK 数据速率&#xff1a;2Mbps/1Mbps…

数据库基础(一)【MySQL】

文章目录 安装 MySQL修改密码连接和退出数据库服务器使用 systemctl 管理服务器进程配置数据库从文件角度看待数据库查看连接情况 安装 MySQL 这是在 Linux 中安装 MySQL 的教程&#xff1a;Linux 下 MySQL 安装。本系列测试用的 MySQL 版本是 5.7&#xff0c;机器是 centOS7.…

LabVIEW中将枚举与条件结构一起使用

LabVIEW中将枚举与条件结构一起使用 枚举是一个具有相应数值的字符串标签型列表。在LabVIEW&#xff08;U8 &#xff0c; U16-默认值和U32&#xff09;中以无符号整数形式应用。 例如&#xff0c;可以有一个枚举保存四个季节&#xff0c;在这种情况下&#xff0c;每个字符串都…

Go之流程控制大全: 细节、示例与最佳实践

引言 在计算机编程中&#xff0c;流程控制是核心的组成部分&#xff0c;它决定了程序应该如何根据给定的情况执行或决策。以下是Go语言所支持的流程控制结构的简要概览&#xff1a; 流程控制类型代码if-else条件分支if condition { } else { }for循环for initialization; con…

GoLong的学习之路(一)语法之变量与常量

目录 GoLang变量批量声明变量的初始化类型推导短变量声明匿名变量 常量iota&#xff08;特殊&#xff09;&#xff08;需要重点记忆&#xff09; GoLang go的诞生为了解决在21世纪多核和网络化环境越来越复杂的变成问题而发明的Go语言。 go语言是从Ken Thomepson发明的B语言和…

分享个包含各省、市、区的编码数据的在线静态资源脚本

在翻《SpringBootVue3》——十三尼克陈作者的大型前后端分离项目实战里面&#xff0c;在看到地址管理的部分时&#xff0c;发现了该作者记录有一个静态的地址资源脚本 这里做个记录&#xff0c;打点 一、引入js <script src"https://s.yezgea02.com/1641120061385/td…

2024王道考研计算机组成原理——指令系统

零、本章概要 指令寻址&#xff1a;解决的是PC"1"的问题 数据寻址&#xff1a;使用寄存器/内存/结合 基址寻址&#xff1a;用于多道程序的并发执行 直接寻址&#xff1a;call 0x12345678 变址寻址&#xff1a;esi edi用于循环&#xff0c;因为使用直接寻址需要一堆…

超市商品管理系统 JAVA语言设计实现

目录 一、系统介绍 二、系统下载 三、系统截图 一、系统介绍 基于VueSpringBootMySQL的超市商品管理系统&#xff0c;超市区域模块、超市货架模块、商品类型模块、商品档案模块&#xff0c;分为用户网页端和管理后台&#xff0c;基于角色的访问控制&#xff0c;可将权限精确…

【Java】<泛型>,在编译阶段约束操作的数据结构,并进行检查。

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ JAVA泛型 泛型介绍&#xff1a; ①泛型&#…