"); //-->
本文我要说的是低功耗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.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 信息

分享完毕
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
《ATmega8原理及应用手册》
TDK 发布 SensorStage 传感器评估平台,大幅加速 IMU 开发进程
MSP430单片机TIMER_A在产品设计中的应用
AVR 单片机专栏,资料下载!之二
边缘计算与人工智能(Edge AI)如何引领新一轮技术革命
长虹R2118A型彩电开关电源(LA单片机)电路
基于物联网的电池组均衡充电与监控系统
超低功率高性能新一代产品MSP430F5xx
单片机语言C51应用实战集锦
Kwikset:超低功耗Wi-Fi解锁无缝体验
嵌入式系统与物联网
MSP430x2xx4xx系列
GD32E230F6V6实用指南:为下一个项目选择合适单片机
物联网与RFID芯片
用AT89C2051单片机实验合弦乐
利用PIC12C508单片机来实现加密狗技术[转帖]
16位语言函数工具库
纳米电力将nPZero集成电路推向超低功耗物联网的量产
SmartDV展示完整的边缘与连接IP解决方案,以高速和低功耗特性赋能移动、物联网和媒体处理设备创新
被收购后的芯科实验室:物联网与人工智能的未来走向
AVR 单片机专栏,资料下载!
《AVR单片机C语言库》
[转帖]从Cygnal C8051F看8位单片机发展之路
语音合成芯片T6668和单片机8031的接口电路图
5V 单片机与5V 耐压单片机有何区别,为什么至关重要
倾情奉献:MSP430汇编指令集(中文),详解带实例!
创维数码5000系列彩电开关电源(AN单片机)电路
用单片机制作的纯正弦波逆变电源电路
芯科科技驱动和重塑智能门锁行业格局
MSP430 电表解决方案