0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Air780E模組LuatOS開發(fā)的位運算(bit)教程篇!

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-11-26 11:58 ? 次閱讀

本次我們要學(xué)習(xí)的是4G模組Air780E的LuatOS開發(fā),關(guān)于位運算(bit)教程分享給大家。

一、位運算概述

位運算是一種在計算機(jī)系統(tǒng)中對二進(jìn)制數(shù)位進(jìn)行操作的運算。由于計算機(jī)內(nèi)部數(shù)據(jù)的存儲和處理都是以二進(jìn)制形式進(jìn)行的,位運算能夠直接對整數(shù)的二進(jìn)制位進(jìn)行高效操作。位運算包括與(&)、或(|)、異或(^)、非(~)、左移(<<)和右移(>>)等基本操作。

二、演示功能概述

本文通過了解位操作的API函數(shù),并用代碼演示功能來熟悉Air780E-LuatOS-軟件 demo-基礎(chǔ)服務(wù)-位運算(bit)。

三、硬件準(zhǔn)備

3.1 Air780E核心板

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

wKgaoWdFRBuAEqxQAAKFVHMZb20008.png

此核心板的詳細(xì)使用說明參考:
https://docs.openluat.com/air780e/product/

Air780E產(chǎn)品手冊中的 《開發(fā)板Core_Air780E使用說明》,寫這篇文章時最新版本的使用說明為:《開發(fā)板Core_Air780E使用說明》;若在使用過程中遇到任何問題,可以直接參考這份使用說明文檔。

3.2 SIM

中國大陸環(huán)境下,可以上網(wǎng)的sim 卡。一般來說,使用移動/電信/聯(lián)通的物聯(lián)網(wǎng)卡或者手機(jī)卡都行。

3.3 PC 電腦

請準(zhǔn)備一臺配備 USB 接口且能夠正常上網(wǎng)的電腦。

電腦操作系統(tǒng)為:
WIN10以及以上版本的WINDOWS系統(tǒng)。

3.4 數(shù)據(jù)通信

TYPE-C口的USB數(shù)據(jù)線.

四、軟件環(huán)境

4.1 Luatools 工具

要想燒錄LuatOS到4G模組中,需要用到的調(diào)試工具:Luatools

詳細(xì)使用說明參考:
Luatools 工具使用說明:
https://docs.openluat.com/Luatools/

Luatools 工具集具備以下幾大核心功能:

一鍵獲取最新固件:
自動連接服務(wù)器,輕松下載最新的模組固件。

固件與腳本燒錄:
便捷地將固件及腳本文件燒錄至目標(biāo)模組中。

串口日志管理:
實時查看模組通過串口輸出的日志信息,并支持保存功能。

串口調(diào)試助手:
提供簡潔的串口調(diào)試界面,滿足基本的串口通信測試需求。

Luatools下載之后,新建一個命名為 "Luatools" 的文件夾,將下載的Luatools_v3.exe拷貝或移動到新建的Luatools文件夾內(nèi),點擊 Luatools_v3.exe 即可運行。

4.2 準(zhǔn)備需要燒錄的代碼

首先要說明一點:腳本代碼, 要和固件的 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示例代碼到一個合適的項目目錄,示例代碼網(wǎng)站:
https://gitee.com/openLuat/LuatOS-Air780E

下載流程參考下圖:

wKgZoWdFRSmAGn16AAYT2cpHzOo947.png

五、API 說明

位操作支持庫

5.1 bit.bnot( value )

取反,等價于 C 語言中的~

參數(shù)

wKgZoWdFRTiAJtktAAB2pDxVceQ346.png

返回值

wKgaoWdFRUeAIDBtAAB00qU25J8515.png

例子

wKgaoWdFRUyAJDfAAACVgmVXw-c112.png

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

與運算,等價于 C 語言中的 val1 & val2 & … & valn

參數(shù)

wKgZoWdFRVaAYnphAAB4EYRCekY644.png

返回值

wKgaoWdFRWCAH-YqAAB_M0aa5zI337.png

例子

wKgaoWdFRWyAGWh8AABSJJbhoFU215.png

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

或運算,等價于 C 里面的 val1 | val2 | … | valn

注:對于Air780E建議不要超過多少個參數(shù)

參數(shù)

wKgZoWdFRXaAF1SVAAD2DS8-CYs810.png

返回值

wKgaoWdFRYCAQfYEAAB-rcuw2ZY517.png

例子

wKgaoWdFRYmABaBEAABSfXhWJj4718.png

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

異或運算,等價于 C 語言中的 val1 ^ val2 ^ … ^ valn

參數(shù)

wKgZoWdFRZSADtxNAADmkcbgNZM853.png

返回值

wKgaoWdFRZ6AY_HTAABidQ7-91o541.png

例子

wKgaoWdFRaeAZZacAABdxU-0W18798.png

5.5 bit.lshift( value, shift )

邏輯左移,等價于 C 語言中的 value << shift

參數(shù)

wKgZomdFRbCAGuruAAC9eHP22fY178.png

返回值

wKgZomdFRbmAItxXAABJ1dx3hsI596.png

例子

wKgZomdFRcKAcNjXAAB1mK-_BIY595.png

5.6 bit.rshift( value, shift )

邏輯右移,等價于 C 語言中的 value >> shift

參數(shù)

wKgZomdFRcyAeUOcAAC76D6JPaw244.png

返回值

wKgZomdFRdSAct8-AAB7BW2YQkk775.png

例子

wKgaomdFRd2AWgnxAABxhhNtgL4679.png

5.7 bit.arshift( value, shift )

算數(shù)右移

參數(shù)

wKgZomdFReaAP1P5AAC5HBAHU8w825.png

返回值

wKgaomdFRfCAG0bwAAB7iT4b93w329.png

例子

wKgZomdFRfmAVqf3AACPLOU82g4098.png

5.8 bit.bit( position )

左移運算,等價于 C 語言中的 1 << position

參數(shù)

wKgZomdFRgGAd2PtAACG1TUN0to139.png

返回值

wKgZomdFRgmAA0XyAACI43gCtjo503.png

例子

wKgaomdFRhKAJgMDAACCYk_LcZo825.png

5.9 bit.isset(value, position)

測試位數(shù)是否被置 1

參數(shù)

wKgZoWdFRhyAXSVZAABlkjZmM14769.png

返回值

wKgaoWdFRiqAA2ZPAAByuUio354181.png

例子

wKgZoWdFRjaAQbnwAAIoXJlSo00029.png

5.10 bit.isclear(value, position)

測試位數(shù)是否被置 0

參數(shù)

wKgZoWdFRkCAJqtDAADFZLLXI3k755.png

返回值

wKgZoWdFRkmAWxPBAABxbd5ungI638.png

例子

wKgaoWdFRlOAPJgDAAD6DQFcXYY464.png

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

置 1

參數(shù)

wKgaomdFRlyAFJUJAACncwZwLfk774.png

返回值

wKgZomdFRmWARFrKAAB5J_OlJK4424.png

例子

wKgaomdFRm6ANlQvAACrHFgK2w4577.png

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

置 0

參數(shù)

wKgZomdFRnmAM6wnAAClu9eNEGM574.png

返回值

wKgaomdFRoKAY1PyAABDj_H2juQ136.png

例子

wKgaoWdFRoyAMvgHAACg0XfaEDk358.png

六、功能驗證

6.1 示例代碼

下面根據(jù) demo 演示位操作的功能,可以參考以下示例代碼.

示例代碼如下:

wKgaoWdFRqGAEUcQAAfQdTgxMMU218.png

wKgZoWdFRrCABFaXAADIDy3LaC0718.png

6.2 燒錄步驟

6.2.1正確連接電腦和 4G 模組電路板

使用帶有數(shù)據(jù)通信功能的數(shù)據(jù)線,不要使用僅有充電功能的數(shù)據(jù)線.

6.2.2識別 4G 模組的 BOOT 引腳

在下載之前,要用模組的 BOOT 引腳觸發(fā)下載, 也就是說,要把 4G 模組的 BOOT 引腳拉到 1.8v,或者直接把 BOOT 引腳和 VDD_EXT 引腳相連.我們要在按下 BOOT 按鍵時讓模塊開機(jī),就可以進(jìn)入下載模式了.

具體到Air780E開發(fā)板:

1、當(dāng)我們模塊沒開機(jī)時,按著 BOOT 鍵然后長按 POW 開機(jī);

2、當(dāng)我們模塊開機(jī)時,按著 BOOT 鍵然后點按重啟鍵即可。

wKgaoWdFRsiAI4NuABXqHxWM4eY493.png

6.2.3識別電腦的正確端口

判斷是否進(jìn)入 BOOT 模式:模塊上電,此時在電腦的設(shè)備管理器中,查看串口設(shè)備, 會出現(xiàn)一個端口表示進(jìn)入了 BOOT 下載模式,如下圖所示:

wKgZoWdFRtOAW3HKAAK9VG_I9dc103.png

6.2.4 用 Luatools 工具燒錄

新建項目

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

在 Luatools 的左上角上有版本顯示的,如圖所示:

wKgaoWdFRt2AZZ-tAAFBGfsowME726.png

Luatools 版本沒問題的話, 就點擊 Luatools 右上角的“項目管理測試”按鈕,如下圖所示:

wKgZoWdFRuaAGpevAAD8KDodYYA020.png

這時會彈出項目管理和燒錄管理的對話框,可以新建一個項目,如下圖:

wKgZoWdFRvGAGIKZAAQO8Cp2hDQ374.png

開始燒錄

選擇Air780E板子對應(yīng)的底層 core 和剛改的 main.lua 腳本文件,下載到板子中:

wKgaoWdFRvuASF3YAAQdMWgXHTE577.png

點擊下載后,我們需要進(jìn)入BOOT模式才能正常下載。

如果沒進(jìn)入BOOT模式會出現(xiàn)下圖情況::

wKgZoWdFRwaAIW8AAACXLcV7Yy8456.png

進(jìn)入 BOOT 模式下載,如圖:

wKgaoWdFRxqAAylXAAONsH5NCS0567.png

6.3 對應(yīng) log 信息

wKgZoWdFRyuAHdOcAAcsQbk5iq0929.png

分享完畢

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44635

    瀏覽量

    373355
  • 開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    370

    瀏覽量

    40843
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    1941
收藏 人收藏

    評論

    相關(guān)推薦

    來來來,看這里:低功耗模組LuatOS開發(fā)的日志輸出!

    本文以低功耗4G模組Air780E為例,學(xué)會低功耗模組LuatOS開發(fā)的日志輸出,積累技術(shù)。
    的頭像 發(fā)表于 12-05 09:09 ?192次閱讀
    來來來,看這里:低功耗<b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>的日志輸出!

    Air780E模組LuatOS開發(fā)實戰(zhàn) —— 手把手教你搞定數(shù)據(jù)打包解包

    本文要說的是低功耗4G模組Air780ELuatOS開發(fā)實戰(zhàn),我將手把手教你搞定數(shù)據(jù)打包解包。
    的頭像 發(fā)表于 12-03 11:17 ?173次閱讀
    <b class='flag-5'>Air780E</b><b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>實戰(zhàn) —— 手把手教你搞定數(shù)據(jù)打包解包

    4G模組Air780ELuatOS開發(fā)運算(bit)示例

    本文我要說的是低功耗4G模組Air780ELuatOS開發(fā),關(guān)于運算(
    的頭像 發(fā)表于 12-02 14:33 ?173次閱讀
    4G<b class='flag-5'>模組</b><b class='flag-5'>Air780E</b>的<b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>之<b class='flag-5'>位</b><b class='flag-5'>運算</b>(<b class='flag-5'>bit</b>)示例

    4G模組Air780ELuatOS開發(fā):關(guān)于通用加解密函數(shù)(crypto)教程!

    本次我將講解低功耗4G模組Air780ELuatOS開發(fā),關(guān)于通用加解密函數(shù)(crypto)教程分享給大家。我會從加解密概述、演示功能概述、硬件準(zhǔn)備、軟件環(huán)境、API 說明等全面講述
    的頭像 發(fā)表于 12-01 15:50 ?209次閱讀
    4G<b class='flag-5'>模組</b><b class='flag-5'>Air780E</b>的<b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>:關(guān)于通用加解密函數(shù)(crypto)教程!

    關(guān)于4G模組LuatOS開發(fā):通用加解密函數(shù)(crypto)|全攻略

    本次我要說的攻略是關(guān)于4G模組LuatOS開發(fā)的通用加解密函數(shù),我以我常用的Air780E模組為例子供大家參考。
    的頭像 發(fā)表于 11-30 09:52 ?293次閱讀
    關(guān)于4G<b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>:通用加解密函數(shù)(crypto)|全攻略

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

    本文說的是關(guān)于4G模組AT指令的FTP示例,以Air780E為例,希望大家有所收獲。
    的頭像 發(fā)表于 11-30 09:40 ?194次閱讀
    低功耗<b class='flag-5'>模組</b><b class='flag-5'>Air780E</b>的AT指令:FTP示例!

    解析Air780E模組LuatOS開發(fā)的隨機(jī)數(shù)(random) 示例

    本文主要解析的是低功耗4G模組Air780ELuatOS開發(fā)隨機(jī)數(shù)(random)實例,我以整理成文分享給大家。
    的頭像 發(fā)表于 11-29 20:23 ?128次閱讀
    解析<b class='flag-5'>Air780E</b><b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>的隨機(jī)數(shù)(random) 示例<b class='flag-5'>篇</b>

    Air780E模組的ADC之旅 LuatOS開發(fā)實例

    今天學(xué)習(xí)一個新的示例,關(guān)于Air780E模組LuatOS開發(fā)的ADC應(yīng)用實例,希望大家有所收獲。
    的頭像 發(fā)表于 11-11 09:33 ?208次閱讀
    <b class='flag-5'>Air780E</b><b class='flag-5'>模組</b>的ADC之旅  <b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>實例

    LuatOS與ADC:Air780E模組開發(fā)的新篇章!

    今天我們學(xué)習(xí)的是Air780E模組LuatOS開發(fā)之ADC應(yīng)用,希望能幫助到大家。
    的頭像 發(fā)表于 11-07 14:12 ?265次閱讀
    <b class='flag-5'>LuatOS</b>與ADC:<b class='flag-5'>Air780E</b><b class='flag-5'>模組</b><b class='flag-5'>開發(fā)</b>的新篇章!

    Air780E模組AT指令下的MQTT應(yīng)用:技術(shù)指南

    今天我要講的是Air780E模組AT指令下的MQTT應(yīng)用,希望對大家有所幫助。
    的頭像 發(fā)表于 11-07 14:02 ?365次閱讀
    <b class='flag-5'>Air780E</b><b class='flag-5'>模組</b>AT指令下的MQTT應(yīng)用:技術(shù)指南

    如何使用Air780E開發(fā)板?看這篇就夠了!

    ? 一、綜述 CORE-AIR780E 開發(fā)板是合宙通信推出的基于 Air780E 模組開發(fā)的,包含電源,SIM 卡,USB,天線,音頻等
    的頭像 發(fā)表于 10-23 17:07 ?403次閱讀
    如何使用<b class='flag-5'>Air780E</b><b class='flag-5'>開發(fā)</b>板?看這篇就夠了!

    關(guān)于Air780E:與服務(wù)器的加密通信操作方法

    ?今天我們來學(xué)習(xí)合宙低功耗4G模組Air780E快速入門之跟服務(wù)器之間的加密通信,伙伴們,一起學(xué)起來! 一、 編寫腳本 1.1 準(zhǔn)備資料 Air780E開發(fā)板購買
    的頭像 發(fā)表于 10-12 07:31 ?273次閱讀
    關(guān)于<b class='flag-5'>Air780E</b>:與服務(wù)器的加密通信操作方法

    合宙4G模組Air780E開發(fā)板使用手冊

    合宙開發(fā)Air780E使用說明
    的頭像 發(fā)表于 09-09 18:22 ?710次閱讀
    合宙4G<b class='flag-5'>模組</b><b class='flag-5'>Air780E</b><b class='flag-5'>開發(fā)</b>板使用手冊

    合宙Air780E硬件設(shè)計手冊02

    合宙低功耗4G模組Air780E硬件設(shè)計介紹
    的頭像 發(fā)表于 09-06 12:02 ?487次閱讀
    合宙<b class='flag-5'>Air780E</b>硬件設(shè)計手冊02

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機(jī)問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機(jī)問題如何分析簡介本文檔適用于合宙Air780E、
    的頭像 發(fā)表于 07-19 15:37 ?669次閱讀
    <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模塊遇到死機(jī)問題如何分析