0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

4G模组Air780E的LuatOS开发之位运算(bit)示例

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-12-02 14:33 次阅读

本文我要说的是低功耗4G模组Air780E的LuatOS开发,关于位运算(bit)示例,我将详细解析分享给大家。

一、位运算概述

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

二、演示功能概述

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

三、硬件准备

3.1 Air780E核心板

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

wKgZPGdKqNaAUn-mAALoicuQvpA378.png

此核心板的详细使用说明参考:
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/

wKgZPGdKqReAVKAhAAIKCKV24uI773.png

Air780E的底层固件在 Luatools 解压后目录的:
LuatOS-SoC_V1112_EC618_FULL.soc

wKgZO2dKqSWAaB9CAAGaQuo_6uo741.png

4.2.2烧录的脚本代码

首先要下载Air780的LuatOS示例代码到一个合适的项目目录,示例代码网站:
https://gitee.com/openLuat/LuatOS-Air780E

下载流程参考下图:

wKgZPGdKqTKARkvFAAchASBMvVs175.png

五、API 说明

位操作支持库

5.1 bit.bnot( value )

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

参数

wKgZO2dKqUKABdDkAACO3cuzTRY537.png

返回值

wKgZPGdKqVCABQ6BAACMJFf29-g420.png

例子

wKgZPGdKqVqANUyrAACxxWRT9k4947.png

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

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

参数

wKgZO2dKqZiAQ4WHAACUAvjhvn8744.png

返回值

wKgZPGdKqaOATKQrAACdGLUUf00760.png

例子

wKgZPGdKqa2AUGlVAABj7dITrRM477.png

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

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

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

参数

wKgZPGdKqbiAcAdZAAEiS7Jq_q0226.png

返回值

wKgZPGdKqmCAYgSOAACZxCxbpd4038.png

例子

wKgZPGdKqmqAZlqvAABonBAkuGs738.png

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

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

参数

wKgZPGdKqnSAQraMAAES9a68ifw833.png

返回值

wKgZO2dKqn6AHDNLAAB0KQzooYg711.png

例子

wKgZO2dKqomANlLDAABvr9-d-a4436.png

5.5 bit.lshift( value, shift )

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

参数

wKgZPGdKqpKAEMarAADmiOqQvvA739.png

返回值

wKgZO2dKqp2AekOVAABWZ1Dk6Co133.png

例子

wKgZO2dKqqaAMsTlAACI1ChGGPc481.png

5.6 bit.rshift( value, shift )

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

参数

wKgZO2dKqrOAZRpyAADYhgM04No710.png

返回值

wKgZPGdKqr-ABl6vAACNnlH7Hzw410.png

例子

wKgZO2dKqsmAYfyRAACKCjabJ8o769.png

5.7 bit.arshift( value, shift )

算数右移

参数

wKgZO2dKqtSAMVhZAADRmr7OcmQ321.png

返回值

wKgZO2dKqt6AWro5AACOyme76Sw105.png

例子

wKgZPGdKqumANlSdAACq6xCkrEg383.png

5.8 bit.bit( position )

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

参数

wKgZPGdKqvOAOxiOAACeTdYh2vg530.png

返回值

wKgZO2dKqv2AX7cDAACg0VnFI1k400.png

例子

wKgZO2dKqwaAZ59gAACaPK1tSwM575.png

5.9 bit.isset(value, position)

测试位数是否被置 1

参数

wKgZO2dKqxCAFdEEAACDI3Kgzkw655.png

返回值

wKgZO2dKqxuAW1DLAACFnSK9Lmo506.png

例子

wKgZPGdKqyeAPRToAAKMw9j06jE546.png

5.10 bit.isclear(value, position)

测试位数是否被置 0

参数

wKgZO2dKqzKAfVtRAADjMNq2lwA631.png

返回值

wKgZPGdKqz2ALRM7AACFEp-NEhM454.png

例子

wKgZO2dKq0mAHm6KAAEoH2bHP0g389.png

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

置 1

参数

wKgZO2dKq1OAOs7OAADAPrG0lBw444.png

返回值

wKgZO2dKq12Ae1bPAACSaC_0LCA274.png

例子

wKgZO2dKq2iABbBIAADLHfSK8Ww456.png

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

置 0

参数

wKgZPGdKq3OAcFD_AADALpCSlus620.png

返回值

wKgZO2dKq32AGuCWAABPaywU9v8980.png

例子

wKgZO2dKq4eACtMOAADEsBWjOUc967.png

六、功能验证

6.1 示例代码

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

示例代码如下:

wKgZO2dKq5qAV3r2AAgyIIoYJhE938.pngwKgZO2dKq6iAPTZ4AAIWOgKsv3U688.png

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 键然后点按重启键即可。

wKgZO2dKq76AKb-bABkiCYmzo1g631.png

6.2.3识别电脑的正确端口

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

wKgZO2dKq8uAW41lAANQMBjHT1I947.png

6.2.4 用 Luatools 工具烧录

新建项目

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

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

wKgZO2dKq9aAekdqAAF1qkiA6Hs416.png

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

wKgZO2dKq-CAPsJuAAEmjDLDDC8953.png

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

wKgZPGdKq-yANUPbAATOJgYAJrk402.png

开始烧录

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

wKgZO2dKq_iAch6XAATb-J8sjaA907.png

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

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

wKgZPGdKrAOAZmvaAAC27TniFCA484.png

进入 BOOT 模式下载,如图:

wKgZO2dKrA6AQMcQAAHvDevPgSg370.png

wKgZO2dKrBiAbYsLAAJH1dCNeMM574.png

6.3 对应 log 信息

wKgZPGdKrCaAXAWnAAiTR1JdbAE528.png

分享完毕

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 位运算
    +关注

    关注

    0

    文章

    17

    浏览量

    8415
  • LuatOS
    +关注

    关注

    0

    文章

    71

    浏览量

    1929
收藏 人收藏

    评论

    相关推荐

    FTP应用看这篇!合宙Air780EP低功耗4G模组AT开发示例

    Air780EP是合宙的[低功耗4G模组]之一,支持全系列的AT指令以及LuatOS脚本二次开发。 本文应各位大佬邀请,详细讲解了
    的头像 发表于 09-29 09:36 1770次阅读
    FTP应用看这篇!合宙<b class='flag-5'>Air780</b>EP低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b>AT<b class='flag-5'>开发</b><b class='flag-5'>示例</b>

    基于移芯EC618平台设计研发的Air780E/Air600E系列低功耗4G Cat.1模组

    11月30日,合宙全新发布LuatOS-SoC@EC618V1001最新固件,适用基于移芯EC618平台设计研发的Air780E/Air600E系列低功耗4G Cat.1
    的头像 发表于 12-02 14:42 5787次阅读

    基于Air780E的远程报警器方案

    恒博A780E-S智能远程报警器方案板,基于合宙低功耗4G Cat.1模组Air780E设计,支持LuatOS二次
    发表于 03-01 11:51 1871次阅读

    合宙低功耗4G模组Air780E——产品规格书

    合宙低功耗4G模组Air780E的规格信息速览
    的头像 发表于 09-02 18:04 907次阅读
    合宙低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>——产品规格书

    合宙低功耗4G模组Air780E——硬件设计手册01

    Air780E是一款基于移芯EC618平台设计的LTECat1无线通信模组。支持FDD-LTE/TDD-LTE的4G远距离无线传 输技术。 另外,模组提供了USB/UART/I2C等
    的头像 发表于 09-04 14:39 995次阅读
    合宙低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>——硬件设计手册01

    合宙Air780E硬件设计手册02

    合宙低功耗4G模组Air780E硬件设计介绍
    的头像 发表于 09-06 12:02 418次阅读
    合宙<b class='flag-5'>Air780E</b>硬件设计手册02

    RNDIS网卡应用看这篇!合宙Air780EP低功耗4G模组AT开发示例

    Air780EP是合宙的低功耗4G模组之一,支持全系列的AT指令以及LuatOS脚本二次开发。 本文应各位大佬邀请,特别讲解
    的头像 发表于 09-30 06:59 500次阅读
    RNDIS网卡应用看这篇!合宙<b class='flag-5'>Air780</b>EP低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b>AT<b class='flag-5'>开发</b><b class='flag-5'>示例</b>

    干货篇:低功耗4G模组Air780E的串口通信

    ​ 今天我们来讲解低功耗4G模组Air780E的串口通信的基本用法,小伙伴们,学起来吧!
    的头像 发表于 10-05 14:38 471次阅读
    干货篇:低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的串口通信

    LuatOS与ADC:Air780E模组开发的新篇章!

    今天我们学习的是Air780E模组LuatOS开发ADC应用,希望能帮助到大家。
    的头像 发表于 11-07 14:12 210次阅读
    <b class='flag-5'>LuatOS</b>与ADC:<b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>开发</b>的新篇章!

    Air780E模组的ADC之旅 LuatOS开发实例

    今天学习一个新的示例,关于Air780E模组LuatOS开发的ADC应用实例,希望大家有所收获。
    的头像 发表于 11-11 09:33 165次阅读
    <b class='flag-5'>Air780E</b><b class='flag-5'>模组</b>的ADC之旅  <b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>实例

    关于4G模组LuatOS开发:通用加解密函数(crypto)|全攻略

    本次我要说的攻略是关于4G模组LuatOS开发的通用加解密函数,我以我常用的Air780E模组
    的头像 发表于 11-30 09:52 130次阅读
    关于<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>:通用加解密函数(crypto)|全攻略

    Air780E模组LuatOS开发运算(bit)教程篇!

    本次我们要学习的是4G模组Air780ELuatOS开发,关于
    的头像 发表于 11-26 11:58 71次阅读
    <b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>的<b class='flag-5'>位</b><b class='flag-5'>运算</b>(<b class='flag-5'>bit</b>)教程篇!

    低功耗模组Air780E的AT指令:FTP示例

    本文说的是关于4G模组AT指令的FTP示例,以Air780E为例,希望大家有所收获。
    的头像 发表于 11-30 09:40 90次阅读
    低功耗<b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的AT指令:FTP<b class='flag-5'>示例</b>!

    4G模组Air780ELuatOS开发:关于通用加解密函数(crypto)教程!

    本次我将讲解低功耗4G模组Air780ELuatOS开发,关于通用加解密函数(crypto)教程分享给大家。我会从加解密概述、演示功能概述
    的头像 发表于 12-01 15:50 94次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>:关于通用加解密函数(crypto)教程!

    解析Air780E模组LuatOS开发的随机数(random) 示例

    本文主要解析的是低功耗4G模组Air780ELuatOS开发随机数(random)实例,我以整理成文分享给大家。
    的头像 发表于 11-29 20:23 42次阅读
    解析<b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>的随机数(random) <b class='flag-5'>示例</b>篇