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

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 防火墙 查状态:systemctl status firewalld.service 关闭:systemctl disable firewalld.service 重启生效 关闭:systemctl stop firewalld.service 马上生效 systemctl stop firewalld 临时关闭防火墙 systemctl disabl…...

《动手学深度学习 Pytorch版》 8.7 通过时间反向传播
8.7.1 循环神经网络的梯度分析 本节主要探讨梯度相关问题,因此对模型及其表达式进行了简化,进行如下表示: 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版:http://cocos2d-x.org/filedown/CocosStudioForMac-v2.0.…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...