当前位置: 首页 > news >正文

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序列操作

ioqueue.init(hwtimer_id,cmd_cnt,repeat_cnt) 初始化一个io操作队列 参数 传入值类型 解释 int 硬件定时器id,默认用0,根据实际MCU确定,air105为0~5,与pwm共用,同一个通道号不能同时为pwm和ioqueue int 一个完…...

探讨Socks5代理技术的原理及其在不同领域的应用

Socks5代理:实现网络连接的智能之选 作为一种网络代理协议,Socks5代理技术通过转发网络数据包,实现了客户端和服务器之间的代理传输。其独特的特性在跨界电商、爬虫数据分析、企业出海和游戏体验等领域发挥着关键作用,为用户提供…...

sql注入的基本手法

目的 通过sqk注入获取数据内容 掌握sql注入基本手法 我们这里使用 1.联合注入 就是利用union select 语句 两条语句 同时执行 实现跨库跨表查询 条件 两条select语句查询结果具有相同列数 对应列数数据类型相同 简单的步骤 1.目标分析 ?id…...

8.1 C++ 标准输入输出流

C/C语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。…...

hive往es映射表写数据报错

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转…...

2023年【广东省安全员A证第四批(主要负责人)】考试试卷及广东省安全员A证第四批(主要负责人)模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 广东省安全员A证第四批(主要负责人)考试试卷根据新广东省安全员A证第四批(主要负责人)考试大纲要求,安全生产模拟考试一点通将广东省安全员A证第四批&#x…...

YOLOv5算法改进(15)— 如何去更换Neck网络(包括代码+添加步骤+网络结构图)

前言:Hello大家好,我是小哥谈。在学习完了如何去更换主干网络之后,接着就让我们通过案例的方式去学习下如何去更换Neck网络。本篇文章的特色就是比较浅显易懂,附加了很多的网络结构图,通过结构图的形式向大家娓娓道来,希望大家学习之后能够有所收获!🌈 前期回顾: YO…...

用Nginx搭建一个具备缓存功能的反向代理服务

在同一台服务器上,使用nginx提供服务,然后使用openresty提供反向代理服务。 参考《Ubuntu 20.04使用源码安装nginx 1.14.0》安装nginx。 参考《用Nginx搭建一个可用的静态资源Web服务器》搭建静态资源Web服务器,但是/nginx/conf/nginx.conf里…...

YOLOv5改进实战 | 更换主干网络Backbone(三)之轻量化模型Shufflenetv2

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…...

【Markdown】 Markdown 操作备忘录

To Do List 显示目前todo list 的状态 getLogger() 单例类, 通过引入模块,获取单例日志对象 结果可视化调研 模型结果保存及测试 - [ ] getLogger() 单例类, 通过引入模块,获取单例日志对象 - [ ] 结果可视化调研 - [x] 模型结果…...

【自动化测试】基于Selenium + Python的web自动化框架

一、什么是Selenium? Selenium是一个基于浏览器的自动化工具,她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:  1、Selenium IDE&…...

zookeeper连接客户端操作数据时报错Socket is not connected

文章目录 一、报错信息二、问题描述三、原因分析:四、解决方案: 一、报错信息 DEBUG org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown input java.net.SocketException: Socket is not connectedat sun.nio.ch.Net.tra…...

mysql select语句中from 之后跟查询语句

概念:将from后面的查询语句放在FROM的后面,则查询到的结果,就会被当成一个“表”; 这里有一个特别要注意的地方,放在FROM后面的子查询,必须要加别名。 select dui.id,dui.party_service_id mes_id, dui.party_id,dui.…...

Yolov8小目标检测(26):多尺度空洞注意力(MSDA) | 中科院一区顶刊 DilateFormer 2023.9

💡💡💡本文独家改进:多尺度空洞注意力(MSDA)采用多头的设计,在不同的头部使用不同的空洞率执行滑动窗口膨胀注意力(SWDA),全网独家首发,创新力度十足,适合科研 多尺度空洞注意力(MSDA) | 亲测在红外弱小目标检测涨点,map@0.5 从0.755提升至0.784 💡�…...

NLP:从头开始的文本矢量化方法

一、说明 NLP 项目使用文本,但机器学习算法不能使用文本,除非将其转换为数字表示。这种表示通常称为向量,它可以应用于文本的任何合理单位:单个标记、n-gram、句子、段落,甚至整个文档。 在整个语料库的统计 NLP 中&am…...

Kotlin 中 apply、let、also、run的区别

apply apply 函数接收一个目标并回来该目标自身。它答应您在目标上履行一些操作&#xff0c;同时仍然回来原始目标。 fun <T> T.apply(block: T.() -> Unit): TT 是目标的类型&#xff0c;block 是一个 lambda 表达式&#xff0c;能够在该目标上履行一些操作。在这个…...

Android JKS MD5 SHA1 公钥生成 私钥生成 APP备案 内容获取

1 查看 jks keytool -list -v -keystore /Users/lipengfei/Desktop/android/androidproject.jks密钥库类型: jks 密钥库提供方: SUN您的密钥库包含 1 个条目别名: ddgj 创建日期: 2018-11-16 条目类型: PrivateKeyEntry 证书链长度: 1 证书[1]: 所有者: CNcn, OUcn, Ocn, Lcn,…...

常用linux的命令(持续更新)

1.防火墙相关 centos7 防火墙 查状态&#xff1a;systemctl status firewalld.service 关闭&#xff1a;systemctl disable firewalld.service 重启生效 关闭&#xff1a;systemctl stop firewalld.service 马上生效 systemctl stop firewalld 临时关闭防火墙 systemctl disabl…...

《动手学深度学习 Pytorch版》 8.7 通过时间反向传播

8.7.1 循环神经网络的梯度分析 本节主要探讨梯度相关问题&#xff0c;因此对模型及其表达式进行了简化&#xff0c;进行如下表示&#xff1a; h t f ( x t , h t − 1 , w h ) o t g ( h t , w o ) \begin{align} h_t&f(x_t,h_{t-1},w_h)\\ o_t&g(h_t,w_o) \end{ali…...

2023-10-20 游戏开发-cocos旧版本2.0.6-下载地址-记录

官方下载地址: Cocos Creator 下载 - 轻量高效的开发引擎 Tags cocos/cocos-engine GitHub cocos creater 旧版本: Tool/Package/REAMDE.md adofsauron/CocosCreatorFAQ - Gitee.com v2.0.6版本: Mac版&#xff1a;http://cocos2d-x.org/filedown/CocosStudioForMac-v2.0.…...

别再死记公式了!用Python+Matplotlib动画可视化理解向量点积、叉积的几何意义

用Python动画解锁向量运算的几何奥秘&#xff1a;点积与叉积的视觉化探索 线性代数中那些抽象的向量运算公式&#xff0c;是否总让你在纸上反复推导却难以建立直观理解&#xff1f;当教科书上冰冷的数学符号无法唤起你的几何直觉时&#xff0c;或许该让代码和动画来架起这座桥梁…...

别再被2000条卡住了!Power Apps数据加载实战:用Concurrent和Filter分块处理上万条记录

突破Power Apps数据加载瓶颈&#xff1a;实战分块处理万级记录的高效策略 当业务数据从几百条增长到上万条时&#xff0c;许多Power Apps开发者都会遇到那个令人头疼的警告弹窗——"已达到数据行限制"。这不是简单的技术提示&#xff0c;而是真实业务场景中效率与用户…...

别再为CSS渐变圆角边框发愁了!5种方法优缺点实测,mask遮罩法才是真香

CSS渐变圆角边框终极方案&#xff1a;5种技术横向评测与实战选型指南 在UI设计日益精致的今天&#xff0c;渐变圆角边框已成为提升界面质感的标配元素。从后台管理系统到移动端H5&#xff0c;这种融合了色彩过渡与柔和边角的设计语言&#xff0c;既能划分视觉层级又不显生硬。但…...

Transformer实战(31)——解释Transformer模型决策

Transformer实战(31)——解释Transformer模型决策 0. 前言 1. 解释模型决策 2. 使用 LIME 解释 Transformer 模型决策 3. 使用 SHAP 解释 Transformer 模型决策 小结 系列链接 0. 前言 随着大语言模型 (Large Language Model, LLM) 的广泛应用,模型输出的准确性与可解释性之…...

Open Interpreter股票API接入:金融数据写库实战步骤

Open Interpreter股票API接入&#xff1a;金融数据写库实战步骤 1. 项目概述与环境准备 今天我们来探索一个非常实用的技术场景&#xff1a;如何使用Open Interpreter接入股票API&#xff0c;并将获取的金融数据自动写入数据库。这个方案特别适合需要定期收集和分析股票数据的…...

大语言模型自我进化:从依赖人类到自主迭代,未来AI如何实现持续成长?

随着大语言模型&#xff08;LLMs&#xff09;的发展&#xff0c;仅依靠人类监督来提升模型性能的成本高昂且存在局限。本文提出了“自我改进”的概念&#xff0c;即模型自主生成数据、评估输出并迭代优化自身能力。文章从系统级视角提出了一套整合现有技术的统一框架&#xff0…...

YC 总裁开源了自己亲手写的 AI Agent 大脑,1 周就 1 万点赞。

还记得之前那个特别火的 GStack 吗?我前几天也发过文章介绍过。就是 Y Combinator 现任总裁兼 CEO Garry Tan 开源的那套专门给 AI 写代码用的 Skill 工作流&#xff0c;目前 7 万 Star。每天有 3 万开发者在用&#xff0c;在 Claude Code 圈子里基本算是贼火模板了。就在前几…...

保姆级教程:用Matlab复现GPS信号捕获(PMF+FFT),附完整源码与数据

保姆级教程&#xff1a;用Matlab复现GPS信号捕获&#xff08;PMFFFT&#xff09;&#xff0c;附完整源码与数据 第一次接触GPS信号处理时&#xff0c;面对满屏的公式推导和抽象流程描述&#xff0c;你是否也感到无从下手&#xff1f;本文将以工程师视角&#xff0c;带你用Matla…...

SCons构建MDK工程翻车实录:从‘No module named building’到完美运行的踩坑全指南

SCons构建MDK工程实战&#xff1a;从报错排查到工程定制的完整指南 第一次接触SCons构建MDK工程时&#xff0c;那种从满屏红色报错到最终看到"Build Complete"的成就感&#xff0c;至今记忆犹新。作为替代传统IDE手动配置的自动化方案&#xff0c;SCons确实能显著提升…...

回顾AQATrack模型遇到的问题

1.环境 &#xff08;1&#xff09;如果只是pytorch的版本是CPU&#xff0c;直接在这个环境里面去修改那个版本改为GPU就可以了&#xff0c;不用整个环境去打包&#xff0c;打包环境进行迁移的灵感&#x1f4a1;来源于deepseek的离谱建议 具体操作步骤&#xff1a; 确认 CUDA …...