直接抄作业!Air780E模组LuatOS开发:位运算(bit)示例

server/2024/11/28 1:37:20/

在嵌入式开发中,位运算是一种高效且常用的操作技巧。本文将介绍如何使用Air780E模组和LuatOS进行位运算,并通过示例代码帮助读者快速上手。

一、位运算概述

位运算是一种在计算机系统中对二进制数位进行操作的运算。由于计算机内部数据的存储和处理都是以二进制形式进行的,位运算能够直接对整数的二进制位进行高效操作。位运算包括与(&)、或(|)、异或(^)、非(~)、左移(<<)和右移(>>)等基本操作。

二、演示功能概述

本文通过了解位操作的API函数,并用代码演示功能来熟悉Air780E-LuatOS-软件 demo-基础服务-位运算(bit)。

三、硬件准备

3.1 Air780E核心板

使用Air780E核心板,如下图所示:

3.2 SIM 卡

中国大陆环境下,可以上网的sim 卡。一般来说,使用移动/电信/联通的物联网卡或者手机卡都行。

3.3 PC 电脑

请准备一台配备 USB 接口且能够正常上网的电脑。

电脑操作系统为:

WIN10以及以上版本的WINDOWS系统。

3.4 数据通信线

带TYPE-C口的USB数据线.

四、软件环境

4.1 Luatools 工具

要想烧录LuatOS到4G模组中,需要用到调试工具:Luatools

Luatools 工具使用说明:

https://docs.openluat.com/Luatools/

4.2 准备需要烧录的代码

首先要说明一点:脚本代码, 要和固件的 soc 文件一起烧录。

4.2.1 烧录的底层固件文件

底层 core 下载地址:

LuatOS 固件版本下载地址:

https://docs.openluat.com/air780e/luatos/firmware/

Air780E的底层固件在 Luatools 解压后目录的:

LuatOS-SoC_V1112_EC618_FULL.soc

4.2.2 烧录的脚本代码

首先要下载Air780的LuatOS示例代码到一个合适的项目目录,示例代码网站:

https://gitee.com/openLuat/LuatOS-Air780E

下载流程参考下图:


五、API 说明

位操作支持库

5.1 bit.bnot( value )

取反,等价于 C 语言中的~

参数

返回值

例子

5.2 bit.band( val1, val2, … valn )

与运算,等价于 C 语言中的 val1 & val2 & … & valn

参数

返回值

例子

5.3 bit.bor( val1, val2, … valn )

或运算,等价于 C 里面的 val1 | val2 | … | valn

注:对于Air780E建议不要超过多少个参数

参数

返回值

例子

5.4 bit.bxor( val1, val2, … valn )

异或运算,等价于 C 语言中的 val1 ^ val2 ^ … ^ valn

参数

返回值

例子

5.5 bit.lshift( value, shift )

逻辑左移,等价于 C 语言中的 value << shift

参数

返回值

例子

5.6 bit.rshift( value, shift )

逻辑右移,等价于 C 语言中的 value >> shift

参数

返回值

例子

5.7 bit.arshift( value, shift )

算数右移

参数

返回值

例子

5.8 bit.bit( position )

左移运算,等价于 C 语言中的 1 << position

参数

返回值

例子

5.9 bit.isset(value, position)

测试位数是否被置 1

参数

返回值

例子

5.10 bit.isclear(value, position)

测试位数是否被置 0

参数

返回值

例子

5.11 bit.set(value, pos1, pos2, …posn)

置 1

参数

返回值

例子

5.12 number=bit.clear(value, pos1, pos2, …posn)

置 0

参数

返回值

例子


六、功能验证

6.1 示例代码

下面根据 demo 演示位操作的功能,可以参考以下示例代码.

示例代码如下:

6.2 烧录步骤

6.2.1 正确连接电脑和 4G 模组电路板

使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线.

6.2.2 识别 4G 模组的 BOOT 引脚

在下载之前,要用模组的 BOOT 引脚触发下载, 也就是说,要把 4G 模组的 BOOT 引脚拉到 1.8v,或者直接把 BOOT 引脚和 VDD_EXT 引脚相连.我们要在按下 BOOT 按键时让模块开机,就可以进入下载模式了.

具体到Air780E开发板:

1、当我们模块没开机时,按着 BOOT 键然后长按 POW 开机;

2、当我们模块开机时,按着 BOOT 键然后点按重启键即可。

6.2.3 识别电脑的正确端口

判断是否进入 BOOT 模式:模块上电,此时在电脑的设备管理器中,查看串口设备, 会出现一个端口表示进入了 BOOT 下载模式,如下图所示:

6.2.4 用 Luatools 工具烧录

新建项目

首先,确保你的 Luatools 的版本,大于等于 3.0.6 版本的。

在 Luatools 的左上角上有版本显示的,如图所示:

Luatools 版本没问题的话, 就点击 Luatools 右上角的“项目管理测试”按钮,如下图所示:

这时会弹出项目管理和烧录管理的对话框,可以新建一个项目,如下图:

开始烧录

选择Air780E板子对应的底层 core 和刚改的 main.lua 脚本文件,下载到板子中:

点击下载后,我们需要进入BOOT模式才能正常下载。

如果没进入BOOT模式会出现下图情况:

进入 BOOT 模式下载,如图:

6.3  对应log信息


http://www.ppmy.cn/server/145490.html

相关文章

【附录】Rust国内镜像设置

目录 前言 &#xff08;1&#xff09;设置环境变量 &#xff08;2&#xff09;安装Rust &#xff08;3&#xff09;设置crates镜像 前言 本节课来介绍下如何在国内高速下载安装Rust和Rust依赖&#xff0c;由于网络原因&#xff0c;我们在安装Rust和下载项目依赖时都很慢&am…

【Python-办公自动化】实现自动化输出模板表格报告

import pandas as pd import numpy as np# 定义时间范围 date_range = pd.date_range(start=2023-11-01, end=2024-10-31, freq=M

Python设计模式详解之5 —— 原型模式

Prototype 设计模式是一种创建型设计模式&#xff0c;它通过复制已有的实例来创建新对象&#xff0c;而不是通过从头实例化。这种模式非常适合对象的创建成本较高或者需要避免复杂的构造过程时使用。Prototype 模式提供了一种通过克隆来快速创建对象的方式。 1. Prototype 模式…

VMware ubuntu创建共享文件夹与Windows互传文件

1.如图1所示&#xff0c;点击虚拟机&#xff0c;点击设置&#xff1b; 图1 2.如图2所示&#xff0c;点击选项&#xff0c;点击共享文件夹&#xff0c;如图3所示&#xff0c;点击总是启用&#xff0c;点击添加&#xff1b; 图2 图3 3.如图4所示&#xff0c;出现命名共享文件夹…

民宿预定管理系统|Java|SSM|Vue| 前后端分离

【重要①】前后端源码万字文档部署文档 【重要②】正版源码有问题包售后 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【三】源码讲解视频 【其它服务】 【一】可以提供远程部署安装&#xff0c;包扩环境 【…

【Python】Uvicorn服务器

【Python】Uvicorn服务器 1.Uvicorn介绍2. Uvicorn 的特点3. Uvicorn 和 FastAPI4. 安装 Uvicorn5. 高级功能6. 性能优化7. 安全与监控8. 部署与维护9. 结论 python官方api地址 1.Uvicorn介绍 Uvicorn 既不是一个传统的“框架”&#xff0c;也不是一个普通的“包”&#xff0…

Vue.js组件(5):表单回显

1 文本框回显 此组件是简单的&#xff0c;只需要使用v-model绑定props的值即可&#xff1a; 1.1 父组件 // 子组件标签与传入的数据 <project-statistics :form"project"></project-statistics>const project ref({id : 1,name : 测试项目, }) 1.2 子…

springboot+redis+lua脚本实现滑动窗口限流

1 限流 为了维护系统稳定性和防止DDoS攻击&#xff0c;需要对系统请求量进行限制。 2 滑动窗口 限流方式有&#xff1a;固定窗口&#xff0c;滑动窗口&#xff0c;令牌桶和漏斗。滑动窗口的意思是&#xff1a;维护一个长度固定的窗口&#xff0c;动态统计窗口内请求次数&…