首页 > 其他分享 >Air780E低功耗模组的LuatOS开发:位运算(bit)示例教程!

Air780E低功耗模组的LuatOS开发:位运算(bit)示例教程!

时间:2024-11-30 13:32:28浏览次数:7  
标签:烧录 低功耗 示例 Luatools BOOT LuatOS 返回值 bit Air780E

本文讲述的是低功耗4G模组Air780E的LuatOS开发,关于位运算(bit)的示例教程,希望大家有所收获。

一、位运算概述

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

二、演示功能概述

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

三、硬件准备

3.1 Air780E核心板

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

此核心板的详细使用说明参考:
https://docs.openluat.com/air780e/product/

Air780E产品手册 中的 《开发板Core_Air780E使用说明》,写这篇文章时最新版本的使用说明为:《开发板Core_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/

Luatools 工具集具备以下几大核心功能:

一键获取最新固件:
自动连接服务器,轻松下载最新的模组固件。

固件与脚本烧录:
便捷地将固件及脚本文件烧录至目标模组中。

串口日志管理:
实时查看模组通过串口输出的日志信息,并支持保存功能。

串口调试助手:
提供简洁的串口调试界面,满足基本的串口通信测试需求。

Luatools下载之后,新建一个命名为 "Luatools" 的文件夹,将下载的Luatools_v3.exe拷贝或移动到新建的Luatools文件夹内,点击 Luatools_v3.exe 即可运行。

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.band(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信息

标签:烧录,低功耗,示例,Luatools,BOOT,LuatOS,返回值,bit,Air780E
From: https://www.cnblogs.com/luatos/p/18576642

相关文章

  • 识别英文数字验证码的程序(Python示例)
    在本篇文章中,我们将使用Python来实现一个英文数字验证码识别的程序。我们会使用TesseractOCR(OpticalCharacterRecognition,光学字符识别)来识别验证码中的文本内容。环境准备首先,需要安装以下Python库:Pillow:用于图像处理。pytesseract:Tesseract的Python包,用于文......
  • 识别英文数字验证码的程序(C# 示例)
    在本篇中,我们将使用TesseractOCR通过C#来实现英文数字验证码的识别。环境准备步骤1:安装TesseractOCRWindows:可以下载并安装TesseractWindows安装包。Linux:通过以下命令安装:bashsudoapt-getinstalltesseract-ocrMacOS:通过Homebrew安装:bashbrewinstall......
  • Java-GUI(登录界面示例)
    简述:步骤:(1)构造界面(将组件对象加入容器对象,注意:应设定对容器对象的布局策略)(2)为界面加入事件响应处理(如单击按钮)实现:两种方式实现,只有用户名为"admin"且密码为"1129"时才会显示,"admin,欢迎您",否则提示输入错误。 一般方法packageharper1125.GUI;importjavax.......
  • CompletableFuture.runAsync使用示例
    CompletableFuture.runAsync()是Java8引入的一个方法,它用于异步执行一个任务,并且该任务没有返回值(即返回void)。该方法会启动一个新的线程来执行给定的任务,而不阻塞主线程或调用线程。作用:异步执行:CompletableFuture.runAsync()会在独立的线程中执行一个Runnable任务,......
  • PHY6236超低成本低功耗蓝牙芯片智能灯控家居
    超低成本SOC蓝牙芯片PHY6236PHY6236是一款用于低功耗蓝牙和专有2.4G应用的片上系统(SoC)。它具有高性能低功耗32位RISC-VMCU,具有8KB保留SRAM、80KBROM、8KBOTP和超低功耗、高性能、多模式无线电。此外,PHY6236还可以支持具有安全性和应用的BLE。串行外设IO和集成......
  • 矽睿半导体推出超高灵敏、低功耗霍尔传感器SWU332NS专为咖啡机检测流量
    咖啡机通常可以设定不同的咖啡不同量,如卡布奇诺的咖啡奶泡更多,而美式咖啡的水占比更多,这都是由霍尔流量计控制实现的。在咖啡机上增加一个霍尔流量计,即可实现流量控制。霍尔流量计内内置有两极磁铁和叶轮,顶部上盖含霍尔元件。当液体从管道进入到流量内部时会带动含磁铁的叶轮......
  • 如何利用Java爬虫获取1688同行还在看(代码示例)
    在电商领域,了解同行的动态对于商家来说至关重要。阿里巴巴中国站(1688)作为一个庞大的B2B平台,提供了丰富的商品和商家信息。通过获取“同行还在看”的数据,商家可以洞察行业趋势,优化自己的产品线和营销策略。本文将详细介绍如何使用Java编写爬虫程序,以合法合规的方式获取1688上的......
  • 解决水库安全监测难题 长期无外接电源 低功耗设备智能化监测系统
    解决水库安全监测难题长期无外接电源低功耗设备智能化监测系统国内某水库安全监测项目需要监测点分散,且无外接供电。项目年限为4年,不允许使用太阳能电板。因此,我们需要设备具备低功耗且内置电池的功能。为了满足客户的要求,我们的研发团队将采集仪从NLM511T升级到电池容量更大......
  • 前端this的几种指向示例
    //1.普通函数中的thisfunctionnormalFunction(){console.log('普通函数this指向:',this);}//在非严格模式下,this指向windownormalFunction();//window//严格模式下,this指向undefined('usestrict');normalFunction();//undefined//2.对象方法中的this......
  • 详解 PyTorch 中的 DataLoader:功能、实现及应用示例
    详解PyTorch中的DataLoader:功能、实现及应用示例在PyTorch框架中,Dataloader是一个非常重要的类,用于高效地加载和处理来自Dataset的数据。Dataloader允许批量加载数据,支持多线程/多进程加载,并可进行数据混洗和采样,极大地提高了模型训练的效率和灵活性。Dataloader......