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.…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
