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

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

3天内不再提示

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

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-11-26 11:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本次我们要学习的是4G模组Air780E的LuatOS开发,关于位运算(bit)教程分享给大家。

一、位运算概述

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

二、演示功能概述

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

三、硬件准备

3.1 Air780E核心板

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

wKgaoWdFRBuAEqxQAAKFVHMZb20008.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/

wKgZoWdFRQiAKjVWAAG8KcM4Dek777.png

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

wKgaoWdFRRuAYNqCAAFXQVY0aLg266.png

4.2.2烧录的脚本代码

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

下载流程参考下图:

wKgZoWdFRSmAGn16AAYT2cpHzOo947.png

五、API 说明

位操作支持库

5.1 bit.bnot( value )

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

参数

wKgZoWdFRTiAJtktAAB2pDxVceQ346.png

返回值

wKgaoWdFRUeAIDBtAAB00qU25J8515.png

例子

wKgaoWdFRUyAJDfAAACVgmVXw-c112.png

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

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

参数

wKgZoWdFRVaAYnphAAB4EYRCekY644.png

返回值

wKgaoWdFRWCAH-YqAAB_M0aa5zI337.png

例子

wKgaoWdFRWyAGWh8AABSJJbhoFU215.png

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

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

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

参数

wKgZoWdFRXaAF1SVAAD2DS8-CYs810.png

返回值

wKgaoWdFRYCAQfYEAAB-rcuw2ZY517.png

例子

wKgaoWdFRYmABaBEAABSfXhWJj4718.png

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

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

参数

wKgZoWdFRZSADtxNAADmkcbgNZM853.png

返回值

wKgaoWdFRZ6AY_HTAABidQ7-91o541.png

例子

wKgaoWdFRaeAZZacAABdxU-0W18798.png

5.5 bit.lshift( value, shift )

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

参数

wKgZomdFRbCAGuruAAC9eHP22fY178.png

返回值

wKgZomdFRbmAItxXAABJ1dx3hsI596.png

例子

wKgZomdFRcKAcNjXAAB1mK-_BIY595.png

5.6 bit.rshift( value, shift )

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

参数

wKgZomdFRcyAeUOcAAC76D6JPaw244.png

返回值

wKgZomdFRdSAct8-AAB7BW2YQkk775.png

例子

wKgaomdFRd2AWgnxAABxhhNtgL4679.png

5.7 bit.arshift( value, shift )

算数右移

参数

wKgZomdFReaAP1P5AAC5HBAHU8w825.png

返回值

wKgaomdFRfCAG0bwAAB7iT4b93w329.png

例子

wKgZomdFRfmAVqf3AACPLOU82g4098.png

5.8 bit.bit( position )

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

参数

wKgZomdFRgGAd2PtAACG1TUN0to139.png

返回值

wKgZomdFRgmAA0XyAACI43gCtjo503.png

例子

wKgaomdFRhKAJgMDAACCYk_LcZo825.png

5.9 bit.isset(value, position)

测试位数是否被置 1

参数

wKgZoWdFRhyAXSVZAABlkjZmM14769.png

返回值

wKgaoWdFRiqAA2ZPAAByuUio354181.png

例子

wKgZoWdFRjaAQbnwAAIoXJlSo00029.png

5.10 bit.isclear(value, position)

测试位数是否被置 0

参数

wKgZoWdFRkCAJqtDAADFZLLXI3k755.png

返回值

wKgZoWdFRkmAWxPBAABxbd5ungI638.png

例子

wKgaoWdFRlOAPJgDAAD6DQFcXYY464.png

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

置 1

参数

wKgaomdFRlyAFJUJAACncwZwLfk774.png

返回值

wKgZomdFRmWARFrKAAB5J_OlJK4424.png

例子

wKgaomdFRm6ANlQvAACrHFgK2w4577.png

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

置 0

参数

wKgZomdFRnmAM6wnAAClu9eNEGM574.png

返回值

wKgaomdFRoKAY1PyAABDj_H2juQ136.png

例子

wKgaoWdFRoyAMvgHAACg0XfaEDk358.png

六、功能验证

6.1 示例代码

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

示例代码如下:

wKgaoWdFRqGAEUcQAAfQdTgxMMU218.png

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

wKgaoWdFRsiAI4NuABXqHxWM4eY493.png

6.2.3识别电脑的正确端口

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

wKgZoWdFRtOAW3HKAAK9VG_I9dc103.png

6.2.4 用 Luatools 工具烧录

新建项目

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

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

wKgaoWdFRt2AZZ-tAAFBGfsowME726.png

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

wKgZoWdFRuaAGpevAAD8KDodYYA020.png

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

wKgZoWdFRvGAGIKZAAQO8Cp2hDQ374.png

开始烧录

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

wKgaoWdFRvuASF3YAAQdMWgXHTE577.png

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

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

wKgZoWdFRwaAIW8AAACXLcV7Yy8456.png

进入 BOOT 模式下载,如图:

wKgaoWdFRxqAAylXAAONsH5NCS0567.png

6.3 对应 log 信息

wKgZoWdFRyuAHdOcAAcsQbk5iq0929.png

分享完毕

审核编辑 黄宇

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

    关注

    2951

    文章

    48301

    浏览量

    419874
  • 开发
    +关注

    关注

    0

    文章

    382

    浏览量

    42279
  • LuatOS
    +关注

    关注

    0

    文章

    180

    浏览量

    2768
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LuatOS:485 总线硬件设计要点与 exmodbus 库开发实战

    在工业物联网通信开发中,485 总线与 Modbus 协议的组合应用十分常见。本文以合宙 Air780EHV 系列模组为实例,围绕 LuatOS
    的头像 发表于 03-19 17:57 303次阅读
    <b class='flag-5'>LuatOS</b>:485 总线硬件设计要点与 exmodbus 库<b class='flag-5'>开发</b>实战

    LuatOS选型指南:基于Air780EPM的32/64性能实测分析

    面对32与64LuatOS固件的选择难题,本文通过在Air780EPM开发板上的实际测试,详细解析两者在整数处理能力、浮点数精度以及系统
    的头像 发表于 02-25 18:05 400次阅读
    <b class='flag-5'>LuatOS</b>选型指南:基于<b class='flag-5'>Air780</b>EPM的32/64<b class='flag-5'>位</b>性能实测分析

    LuatOS-AirLuatOS常见故障排查手册

    方案,打造一份实用的“不翻车”操作指南。 一、lua版本不一样 LuatOS-Air使用的是lua5.1版本,本身不支持位移运算符。 LuatOS使用的是lua5.3版本,取消了module(..., package.seeal
    的头像 发表于 01-13 19:20 368次阅读
    <b class='flag-5'>LuatOS-Air</b>转<b class='flag-5'>LuatOS</b>常见故障排查手册

    警惕兼容性陷阱:LuatOS-Air脚本在LuatOS中的运行异常分析

    案例,深入分析运行异常的根本原因并提出预防措施。 一、lua版本不一样 LuatOS-Air使用的是lua5.1版本,本身不支持位移运算符。 LuatOS使用的是lua5.3版本,取消了module(..., package.s
    的头像 发表于 01-13 19:20 373次阅读
    警惕兼容性陷阱:<b class='flag-5'>LuatOS-Air</b>脚本在<b class='flag-5'>LuatOS</b>中的运行异常分析

    构建可靠USB应用:硬件设计要点与LuatOS开发技巧!

    指导。 本文以Air780EPM系列低功耗模组为例,分享USB接口的硬件设计要点以及LuatOS高效开发API,帮助开发者在设计中避开常见陷
    的头像 发表于 12-15 10:46 421次阅读
    构建可靠USB应用:硬件设计要点与<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>技巧!

    USB设计操作指南:硬件关键与LuatOS API开发技巧!

    本文以Air780EPM系列低功耗模组为实例,分享USB接口硬件设计的要点以及LuatOS高效开发API的助力作用。旨在指导开发者在设计中规
    的头像 发表于 11-11 18:29 418次阅读
    USB设计操作指南:硬件关键与<b class='flag-5'>LuatOS</b> API<b class='flag-5'>开发</b>技巧!

    一文搞懂Air780EPM的NTP通信:LuatOS脚本开发教程

     想在Air780EPM上用LuatOS实现NTP时间同步?这篇教程将用最通俗的方式讲解实现原理与代码实现,让你快速掌握关键技能。 一、NTP通信概述   1.1 NTP 网络时间协议(英语
    的头像 发表于 09-30 18:19 2381次阅读
    一文搞懂<b class='flag-5'>Air780</b>EPM的NTP通信:<b class='flag-5'>LuatOS</b>脚本<b class='flag-5'>开发</b>教程

    Air780EPM嵌入式开发LuatOS下的MQTT通信实践

    通过LuatOS脚本在Air780EPM开发板上实现MQTT通信,是物联网设备开发中高效且便捷的解决方案。 一、MQTT 协议详解   1.1 什么是 MQTT? MQTT(Messa
    的头像 发表于 09-30 16:11 2094次阅读
    <b class='flag-5'>Air780</b>EPM嵌入式<b class='flag-5'>开发</b>:<b class='flag-5'>LuatOS</b>下的MQTT通信实践

    Air780EPM开发板NTP对时教程:LuatOS脚本开发入门指南

    通过简单的LuatOS脚本,Air780EPM即可实现NTP时间同步。本指南从零开始,带你掌握嵌入式设备联网校时的核心方法。 一、NTP通信概述 1.1 NTP 网络时间协议(英语:Network
    的头像 发表于 09-30 16:01 1406次阅读
    <b class='flag-5'>Air780</b>EPM<b class='flag-5'>开发</b>板NTP对时教程:<b class='flag-5'>LuatOS</b>脚本<b class='flag-5'>开发</b>入门指南

    LuatOS嵌入式开发实战:Air780EPM与MQTT通信

     本教程聚焦于LuatOSAir780EPM开发板上的应用,演示如何通过脚本实现MQTT协议通信,助力物联网设备快速联网。 一、MQTT 协议详解   1.1 什么是 MQTT? MQTT
    的头像 发表于 09-29 18:10 743次阅读
    <b class='flag-5'>LuatOS</b>嵌入式<b class='flag-5'>开发</b>实战:<b class='flag-5'>Air780</b>EPM与MQTT通信

    Air780EPM开发板FTP功能实战:LuatOS嵌入式开发全解析

    本文深入讲解Air780EPM模组LuatOS环境下的FTP应用开发,涵盖AT指令配置、网络连接与文件传输流程,助你高效完成嵌入式通信项目。 一、什么是 FTP   1.1 基本概念
    的头像 发表于 09-29 15:37 703次阅读
    <b class='flag-5'>Air780</b>EPM<b class='flag-5'>开发</b>板FTP功能实战:<b class='flag-5'>LuatOS</b>嵌入式<b class='flag-5'>开发</b>全解析

    LuatOS Air780EPM 开发板 HTTP 教程:原理讲解与项目实操!

    本篇教程将系统介绍 LuatOS Air780EPM 在 HTTP 通信中的应用,从请求机制到响应解析,配合完整代码演示,让你轻松实现设备端与云端的数据交互。 一、HTTP 概述 1.1
    的头像 发表于 09-26 20:36 1371次阅读
    <b class='flag-5'>LuatOS</b> <b class='flag-5'>Air780</b>EPM <b class='flag-5'>开发</b>板 HTTP 教程:原理讲解与项目实操!

    Air780EGH串口电路设计攻略:硬件工程师必知要点

    。 本文主要从硬件设计的角度,分享串口设计中的一些关键注意点,软件开发方面不做深入探讨。 一、串口相关管脚 Air780EGH支持3个串口,分别是: 主串口UART1 扩展串口UART3 调试串口UART0 Air780EGH不
    的头像 发表于 08-14 17:53 1063次阅读
    <b class='flag-5'>Air780</b>EGH串口电路设计攻略:硬件工程师必知要点

    揭秘Air780EGH定位功能:源码开放助力极速开发

    的相关要点。 最新源码及实操教程详见: https://docs.openluat.com/air780egh/luatos/app/gnss/
    的头像 发表于 07-29 16:11 951次阅读
    揭秘<b class='flag-5'>Air780</b>EGH定位功能:源码开放助力极速<b class='flag-5'>开发</b> !

    LuatOS编程基础教程:手把手带你入门物联网开发

    对于渴望进入物联网开发领域的初学者来说,LuatOS是一个理想的起点。本教程将通过由浅入深的教学方式,从搭建开发环境、理解核心API到编写简单应用,逐步引导你掌握LuatOS编程的核心
    的头像 发表于 06-11 13:03 907次阅读
    <b class='flag-5'>LuatOS</b>编程基础教程:手把手带你入门物联网<b class='flag-5'>开发</b>!