国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

LuatOS-Air腳本移植到LuatOS版本注意事項(xiàng)

青山老竹農(nóng) ? 來(lái)源:jf_82863998 ? 作者:jf_82863998 ? 2026-01-17 14:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、lua版本不一樣

LuatOS-Air使用的是lua5.1版本,本身不支持位移運(yùn)算符。

LuatOS使用的是lua5.3版本,取消了module(..., package.seeall)這種形式的跨文件調(diào)用。

二、api不同

首先說(shuō)明,core和腳本有所不同,用戶可以理解為,core是安卓/ios系統(tǒng),腳本為一個(gè)又一個(gè)的app,只有core+腳本,才能支撐起完整的一個(gè)二次開(kāi)發(fā)項(xiàng)目。

LuatOS-Air的api:

在https://doc.openluat.com/wiki/21?wiki_page_id=2068這里,又分為了5.1原生接口,合宙提供的額外接口兩種。

在額外的接口其中,又分為了底層接口二次封裝接口,底層接口叫做core api,二次封裝接口叫做script lib api,下面會(huì)簡(jiǎn)稱為lib層api。

core api實(shí)現(xiàn)過(guò)程不可見(jiàn),封裝在了core里,受限于和RDA的協(xié)議,這部分實(shí)現(xiàn)過(guò)程不開(kāi)源,而lib層的api,實(shí)現(xiàn)過(guò)程可見(jiàn),用戶可以自行修改。

lib層api一般是將底層提供的接口進(jìn)行合并與封裝,更加的簡(jiǎn)單與易用,也有部分lib層api是直接給core發(fā)送AT指令然后處理AT指令的返回值,并且以函數(shù)返回值的形式返回給調(diào)用該api的位置。

LuatOS的api

在https://docs.openluat.com/osapi/這里,和LuatOS-Air一樣,分為了5.3原生接口和合宙提供的額外接口兩種。

在額外的接口其中,又分為了核心庫(kù)接口擴(kuò)展庫(kù)接口,核心庫(kù)接口叫做core api,擴(kuò)展庫(kù)接口叫做script lib api,下面會(huì)簡(jiǎn)稱為lib層api。

core api實(shí)現(xiàn)過(guò)程不可見(jiàn),封裝在了core里,這部分實(shí)現(xiàn)過(guò)程不開(kāi)源,而lib層的api,實(shí)現(xiàn)過(guò)程可見(jiàn),用戶可以自行修改。

LuatOS 核心庫(kù)是在底層實(shí)現(xiàn)的功能庫(kù),調(diào)用核心庫(kù)無(wú)需代碼使用 require 操作;

LuatOS 擴(kuò)展庫(kù)是用 Lua 腳本實(shí)現(xiàn)的功能庫(kù),必須用 requre 調(diào)用才能夠使用擴(kuò)展庫(kù)。

三、跨文件調(diào)用方式不同

LuatOS-Air跨文件調(diào)用方式

LuatOS-Air在每一個(gè)非main.lua的文件頭部,第一行可執(zhí)行代碼永遠(yuǎn)是module(..., package.seeall),主要作用是將該文件中所有的全局變量/全局函數(shù),加入到一張名為 _G的table中方便其他.lua文件調(diào)用,在這里不做過(guò)多講解,能有轉(zhuǎn)移需求的客戶,基本都會(huì)LuatOS-Air的跨文件調(diào)用方法。

luatos跨文件調(diào)用方式

luatos跨文件調(diào)用方式有兩種,一種和LuatOS-Air類似,不過(guò)是在文件第一行,新建一個(gè)和文件名相同的table,文件結(jié)尾處return這個(gè)table,接下來(lái)舉個(gè)例子

首先封裝一個(gè)函數(shù)

---函數(shù)功能:

-- 生成從1-max的table

-- @輸入值:table的最大值

-- @返回: table結(jié)果

-- @例子: local list = getNumberList(10)

function getNumberList(max)

local t = {}

for i=1,max do

table.insert(t,i)

end

return t

end

我們新建一個(gè)文件叫tools.lua,把這個(gè)函數(shù)放進(jìn)去,現(xiàn)在,整個(gè)文件如下面這樣:

tools.lua

---函數(shù)功能:

-- 生成從1-max的table

-- @輸入值:table的最大值

-- @返回: table結(jié)果

-- @例子: local list = getNumberList(10)

local function getNumberList(max)

local t = {}

for i=1,max do

table.insert(t,i)

end

return t

end

--手動(dòng)返回一個(gè)table,包含了上面的函數(shù)

return {

getNumberList = getNumberList,

}

現(xiàn)在,我們封裝的這個(gè)函數(shù)就能在其他文件(例如main.lua)里被調(diào)用了,具體代碼如下:

--引用tools.lua文件,并加載

local tool = require("tools")

local list = tool.getNumberList(12)

當(dāng)調(diào)用了require接口后,Lua虛擬機(jī)會(huì)自動(dòng)加載你調(diào)用的文件,執(zhí)行文件的內(nèi)容,然后返回你文件里return的結(jié)果。

為了更好地理解這段話,我們可以看下面兩個(gè)文件,其中main.lua是被運(yùn)行的那個(gè)入口文件,

test.lua

--以便一會(huì)兒返回使用的table

local temp = {}

--把全局變量a更改了

a = 1

--local變量無(wú)法被外部調(diào)用

--但是可以在文件內(nèi)被調(diào)用

local b = 2

--文件在被require的時(shí)候,會(huì)被執(zhí)行

--把全局變量c更改了

c = a + b

--使函數(shù)在table里

function temp.addB()

? --文件內(nèi)部可以調(diào)用變量b

? b = b + 1

? return b

end

--返回table

return temp

main.lua

-- LuaTools需要PROJECT和VERSION這兩個(gè)信息

PROJECT = "adcdemo"

VERSION = "1.0.0"

log.info("main", PROJECT, VERSION)

-- 添加硬狗防止程序卡死

if wdt then

? wdt.init(9000) -- 初始化watchdog設(shè)置為9s

? sys.timerLoopStart(wdt.feed, 3000) -- 3s喂一次狗

end

local test = require("test")

--引用test.lua,這里require的作用如果不是很清楚可以類比成C語(yǔ)言中的#include,當(dāng)然熟悉lua和C語(yǔ)言的用戶可以很明確的知道require和#include的區(qū)別,但是方便新用戶理解,可以暫時(shí)當(dāng)成#include來(lái)看待

print(a)--輸出1

print(b)--輸出nil,因?yàn)閎是local變量

print(c)--輸出3

print(test.addB())--輸出3

print(test.addB())--輸出4

print(test.addB())--輸出5

同時(shí),每個(gè)文件最多只會(huì)被require一次,如果有多個(gè)require,只有第一次會(huì)執(zhí)行

-- 用戶代碼已結(jié)束---------------------------------------------

-- 結(jié)尾總是這一句

sys.run()

-- sys.run()之后后面不要加任何語(yǔ)句!!!!!

此處為第一種調(diào)用方法,簡(jiǎn)單來(lái)說(shuō),被調(diào)用文件頭部,將module(..., package.seeall)換成文件名={},文件末尾處加return {本文件中寫(xiě)的函數(shù)名=本文件中寫(xiě)的函數(shù)名},有多個(gè)函數(shù)的時(shí)候,可以添加多個(gè)元素名= 元素名進(jìn)table里。

第二種調(diào)用方法依舊是在文件開(kāi)頭寫(xiě)上文件名={},不同的是,需要被調(diào)用的函數(shù)名,可以寫(xiě)成文件名.函數(shù)名的形式,最后的return不需要return一個(gè)很長(zhǎng)的table了,只需要return 文件名,例如:

需要在main.lua 中調(diào)用test.lua的test函數(shù),那么除了固定格式以外的main.lua可以寫(xiě)成

test=require("test")

test.test()

而test.lua中完整的樣子為

test = {}

function test.test()

log.info(“我被調(diào)用了”)

end

return test

具體可參考https://gitee.com/openLuat/LuatOS/tree/master/script/libs這里所有的demo

四、實(shí)例

uart的demo為例,筆者將帶著用戶,將LuatOS-Air uart的demo,移植到luatos上(僅講解uart1的移植過(guò)程,其他串口通用),除去無(wú)關(guān)本次移植過(guò)程的部分,LuatOS-Air的uart1完整demo如下,是一個(gè)自發(fā)自收的測(cè)試demo,luatos完整的demo也會(huì)放在最后,方便用戶對(duì)比。

LuatOS-Air_uart.zip

開(kāi)始移植

main.lua的改造

chaijie_default.png

PROJECT和VERSION這兩個(gè)參數(shù)不變,下載時(shí)候需要這兩個(gè)參數(shù)

require "log"這句可以刪除,底層已經(jīng)寫(xiě)好了log庫(kù),并提供了和LuatOS-Air lib層api幾乎一致的core api,查看對(duì)應(yīng)的 luatos log庫(kù)api https://docs.openluat.com/osapi/core/log/

后得知,幾種日志模式的常量有所不同,所以LOG_LEVEL = log.LOGLEVEL_TRACE這句,可以改成LOG_LEVEL = log.LOG_INFO,再添加一句log.setLevel(LOG_LEVEL )

因?yàn)橹鬟壿嫸荚趖estUart1文件中,不需要在main.lua中調(diào)用,所以保持 require "testUart1" 原樣即可,為了用戶更直觀的看出跨文件調(diào)用的不同,所以我在testUart1中又寫(xiě)了一個(gè)名為function_name的函數(shù),然后在main.lua中進(jìn)行循環(huán)調(diào)用。sys.init函數(shù)不需要,直接刪去即可

完成上述步驟以后,main.lua就被我們改造成了下面這樣

chaijie_default.png

testUart1.lua的改造

接下來(lái)進(jìn)入testUart1.lua中

chaijie_default.png

module(...,package.seeall)改為 testUart1 ={},pm和utils兩個(gè)庫(kù),utils不需要,直接刪除,pm庫(kù)底層提供了,無(wú)需require,也刪除。

接下來(lái)會(huì)先將proc、read、write、writeOk和我剛剛寫(xiě)的function_name這幾個(gè)函數(shù)會(huì)加載到內(nèi)存中,但是還沒(méi)有執(zhí)行,接下來(lái)執(zhí)行的是pm.wake("testUart"),查看luatos的pm接口(https://docs.openluat.com/osapi/core/pm/),可以看到luatos沒(méi)有wake接口,但是有不休眠模式,所以先設(shè)置下不休眠,也就是將pm.wake("testUart")換成pm.request(pm.NONE)

然后執(zhí)行的是uart.on兩個(gè)注冊(cè)函數(shù),當(dāng)時(shí)串口有接收事件產(chǎn)生時(shí)候,會(huì)去執(zhí)行read函數(shù),當(dāng)串口有發(fā)送事件產(chǎn)生時(shí),會(huì)執(zhí)行writeOK函數(shù),對(duì)比luatos的注冊(cè)串口收發(fā)事件(https://docs.openluat.com/osapi/core/uart/#45-uartonid-event-func),可以看出,這兩個(gè)芯片收發(fā)事件函數(shù)一致,無(wú)需更改。

最后執(zhí)行的是串口設(shè)置指令,LuatOS-Air和luatos有很大不同,LuatOS-Air的uart設(shè)置接口如下(https://doc.openluat.com/wiki/21?wiki_page_id=2250#uartsetup_id_baud_databits_parity_stopbitsmsgmodetxDoneReportflowcontrolpriority_33)

luatos的uart設(shè)置接口如下(https://docs.openluat.com/osapi/core/uart/#41-uartsetupid-baud_rate-data_bits-stop_bits-partiy-bit_order-buff_size-rs485_gpio-rs485_level-rs485_delay-debug_enable-error_drop)

這兩個(gè)接口,LuatOS-Air的和luatos最大區(qū)別就是,LuatOS-Air將485半自動(dòng)收發(fā)控制分開(kāi)了,單獨(dú)寫(xiě)了一個(gè)uart.set_rs485_oe

而luatos將其寫(xiě)在了一起,用戶在使用該接口時(shí),一定要注意不同接口之間參數(shù)的位置。

當(dāng)有串口接收事件產(chǎn)生時(shí),模塊會(huì)進(jìn)入read函數(shù),在read函數(shù)里,打印了data原始數(shù)據(jù)和轉(zhuǎn)成hex以后的數(shù)據(jù)后,便進(jìn)入了proc函數(shù)中,并且將串口來(lái)的數(shù)據(jù)傳入給proc函數(shù),進(jìn)行處理。

值得注意的是,read函數(shù)里有將串口來(lái)的數(shù)據(jù)通過(guò)uart.read函數(shù)賦值給data變量這個(gè)操作,但是luatos截至當(dāng)前文章完成時(shí),uart.read函數(shù)的第二個(gè)參數(shù),只能填number,意為每次接收的字節(jié)數(shù),也就是需要將代碼中的uart.read(UART_ID,"*l")換成uart.read(UART_ID,1024)后面這個(gè)1024,為uart.setup的第7個(gè)參數(shù),串口緩沖區(qū)你設(shè)置的大小,未設(shè)置默認(rèn)為1024字節(jié),如果需要用戶自行設(shè)置,則最小512,最大4096

而當(dāng)有串口發(fā)送事件產(chǎn)生時(shí),模塊會(huì)進(jìn)入writeOk函數(shù),該函數(shù)比較簡(jiǎn)單,就打印了下發(fā)送成功字樣。

最后一行因?yàn)橛锌缥募{(diào)用,所以需要return 文件名,也就是加一句return testUart1

最后整個(gè)testUart1.lua就被我們改造成了這樣

至此 整個(gè)改造過(guò)程結(jié)束

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    156

    瀏覽量

    2693
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LuatOS 框架的嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)原理

    LuatOS 重新定義了嵌入式系統(tǒng)的開(kāi)發(fā)范式——將 Lua 腳本作為主程序語(yǔ)言,構(gòu)建起完整的系統(tǒng)架構(gòu)。其設(shè)計(jì)原理圍繞“腳本主導(dǎo)、C 層支撐”展開(kāi),通過(guò)在固件中嵌入 Lua 解釋器,將硬件操作抽象為
    的頭像 發(fā)表于 02-03 15:57 ?100次閱讀
    <b class='flag-5'>LuatOS</b> 框架的嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)原理

    LuatOS平臺(tái)下BLE藍(lán)牙開(kāi)發(fā)從入門實(shí)踐

    在資源受限的無(wú)線終端設(shè)備中,如何實(shí)現(xiàn)高效、穩(wěn)定的BLE通信是開(kāi)發(fā)關(guān)鍵。LuatOS憑借其低內(nèi)存占用、高可擴(kuò)展性與腳本化開(kāi)發(fā)優(yōu)勢(shì),成為眾多開(kāi)發(fā)者構(gòu)建BLE應(yīng)用的首選平臺(tái)。本文面向初學(xué)者與中級(jí)開(kāi)發(fā)者
    的頭像 發(fā)表于 02-02 16:32 ?6134次閱讀
    <b class='flag-5'>LuatOS</b>平臺(tái)下BLE藍(lán)牙開(kāi)發(fā)從入門<b class='flag-5'>到</b>實(shí)踐

    輕松掌握——LuatOS socket基礎(chǔ)知識(shí)和應(yīng)用開(kāi)發(fā)

    對(duì)于剛接觸LuatOS開(kāi)發(fā)的工程師而言,實(shí)現(xiàn)設(shè)備聯(lián)網(wǎng)往往是第一個(gè)重要目標(biāo),而Socket編程正是實(shí)現(xiàn)這一目標(biāo)的核心技術(shù)路徑。本文以循序漸進(jìn)的方式,帶領(lǐng)讀者從最基礎(chǔ)的Socket概念入手,逐步掌握在
    的頭像 發(fā)表于 01-28 20:07 ?170次閱讀
    輕松掌握——<b class='flag-5'>LuatOS</b>  socket基礎(chǔ)知識(shí)和應(yīng)用開(kāi)發(fā)

    LuatOS框架的使用(上)

    在資源受限的物聯(lián)網(wǎng)終端設(shè)備中,如何實(shí)現(xiàn)快速開(kāi)發(fā)與穩(wěn)定運(yùn)行是關(guān)鍵挑戰(zhàn)。LuatOS框架通過(guò)將Lua語(yǔ)言與底層硬件抽象層深度融合,提供了一套簡(jiǎn)潔高效的開(kāi)發(fā)范式。本文將圍繞LuatOS框架的使用展開(kāi),從
    的頭像 發(fā)表于 01-27 19:38 ?156次閱讀
    <b class='flag-5'>LuatOS</b>框架的使用(上)

    LuatOS-Air轉(zhuǎn)LuatOS常見(jiàn)故障排查手冊(cè)

    當(dāng)LuatOS-Air腳本LuatOS環(huán)境中運(yùn)行失敗,問(wèn)題往往集中在幾個(gè)關(guān)鍵模塊:任務(wù)調(diào)度、外設(shè)驅(qū)動(dòng)、網(wǎng)絡(luò)配置和固件版本匹配。本文以故障排查的邏輯為主線,列出常見(jiàn)報(bào)錯(cuò)現(xiàn)象、可能原因及
    的頭像 發(fā)表于 01-13 19:20 ?133次閱讀
    <b class='flag-5'>LuatOS-Air</b>轉(zhuǎn)<b class='flag-5'>LuatOS</b>常見(jiàn)故障排查手冊(cè)

    警惕兼容性陷阱:LuatOS-Air腳本LuatOS中的運(yùn)行異常分析

    案例,深入分析運(yùn)行異常的根本原因并提出預(yù)防措施。 一、lua版本不一樣 LuatOS-Air使用的是lua5.1版本,本身不支持位移運(yùn)算符。 LuatOS使用的是lua5.3
    的頭像 發(fā)表于 01-13 19:20 ?153次閱讀
    警惕兼容性陷阱:<b class='flag-5'>LuatOS-Air</b><b class='flag-5'>腳本</b>在<b class='flag-5'>LuatOS</b>中的運(yùn)行異常分析

    LuatOSAir8000 AGPS輔助定位教程與實(shí)踐

    本教程演示了Air8000在LuatOS中利用AGPS輔助定位實(shí)現(xiàn)快速定位的方法,系統(tǒng)講解AGPS原理及開(kāi)發(fā)應(yīng)用時(shí)的注意事項(xiàng)。 ? 一、AGPS 概述 ? AGPS(Assisted GPS,輔助
    的頭像 發(fā)表于 10-31 16:51 ?3093次閱讀
    <b class='flag-5'>LuatOS</b>下<b class='flag-5'>Air</b>8000 AGPS輔助定位教程與實(shí)踐

    一文搞懂Air780EPM的NTP通信:LuatOS腳本開(kāi)發(fā)教程

    ?想在Air780EPM上用LuatOS實(shí)現(xiàn)NTP時(shí)間同步?這篇教程將用最通俗的方式講解實(shí)現(xiàn)原理與代碼實(shí)現(xiàn),讓你快速掌握關(guān)鍵技能。 一、NTP通信概述 ? 1.1 NTP 網(wǎng)絡(luò)時(shí)間協(xié)議(英語(yǔ)
    的頭像 發(fā)表于 09-30 18:19 ?2229次閱讀
    一文搞懂<b class='flag-5'>Air</b>780EPM的NTP通信:<b class='flag-5'>LuatOS</b><b class='flag-5'>腳本</b>開(kāi)發(fā)教程

    Air780EPM開(kāi)發(fā)板NTP對(duì)時(shí)教程:LuatOS腳本開(kāi)發(fā)入門指南

    通過(guò)簡(jiǎn)單的LuatOS腳本,Air780EPM即可實(shí)現(xiàn)NTP時(shí)間同步。本指南從零開(kāi)始,帶你掌握嵌入式設(shè)備聯(lián)網(wǎng)校時(shí)的核心方法。 一、NTP通信概述 1.1 NTP 網(wǎng)絡(luò)時(shí)間協(xié)議(英語(yǔ):Network
    的頭像 發(fā)表于 09-30 16:01 ?1166次閱讀
    <b class='flag-5'>Air</b>780EPM開(kāi)發(fā)板NTP對(duì)時(shí)教程:<b class='flag-5'>LuatOS</b><b class='flag-5'>腳本</b>開(kāi)發(fā)入門指南

    LuatOS腳本開(kāi)發(fā)入門:嵌入式運(yùn)行框架全解析!

    想搞懂LuatOS如何運(yùn)行Lua腳本?本文深入剖析其嵌入式運(yùn)行框架,涵蓋虛擬機(jī)加載、任務(wù)協(xié)程、系統(tǒng)初始化等關(guān)鍵環(huán)節(jié),適合初學(xué)者。 一、LuatOS 編程起步 1.1 底層固件怎么啟動(dòng) Luat
    的頭像 發(fā)表于 09-26 17:45 ?477次閱讀
    <b class='flag-5'>LuatOS</b><b class='flag-5'>腳本</b>開(kāi)發(fā)入門:嵌入式運(yùn)行框架全解析!

    嵌入式開(kāi)發(fā)新選擇:LuatOS腳本框架入門教程

    LuatOS正成為嵌入式開(kāi)發(fā)的新趨勢(shì)!本教程帶你從基礎(chǔ)入手,全面了解其基于Lua的腳本開(kāi)發(fā)模式與輕量級(jí)運(yùn)行框架。 一、LuatOS 編程起步 1.1 底層固件怎么啟動(dòng) LuatOS
    的頭像 發(fā)表于 09-26 17:34 ?582次閱讀
    嵌入式開(kāi)發(fā)新選擇:<b class='flag-5'>LuatOS</b><b class='flag-5'>腳本</b>框架入門教程

    是否必須使用LuatIO?Air8000 GPIO配置與設(shè)計(jì)規(guī)范深度解析

    Air8000的GPIO應(yīng)用開(kāi)發(fā)中,LuatIO的角色至關(guān)重要。本文剖析其必要性,結(jié)合設(shè)計(jì)注意事項(xiàng),為開(kāi)發(fā)者提供從配置優(yōu)化的全流程指南。 想要4G+GNSS+WiFi+BLE+TTS+VOLTE
    的頭像 發(fā)表于 07-29 13:54 ?526次閱讀
    是否必須使用LuatIO?<b class='flag-5'>Air</b>8000 GPIO配置與設(shè)計(jì)規(guī)范深度解析

    LuatOS編程基礎(chǔ)教程:手把手帶你入門物聯(lián)網(wǎng)開(kāi)發(fā)!

    對(duì)于渴望進(jìn)入物聯(lián)網(wǎng)開(kāi)發(fā)領(lǐng)域的初學(xué)者來(lái)說(shuō),LuatOS是一個(gè)理想的起點(diǎn)。本教程將通過(guò)由淺入深的教學(xué)方式,從搭建開(kāi)發(fā)環(huán)境、理解核心API編寫(xiě)簡(jiǎn)單應(yīng)用,逐步引導(dǎo)你掌握LuatOS編程的核心技能,開(kāi)啟智能
    的頭像 發(fā)表于 06-11 13:03 ?764次閱讀
    <b class='flag-5'>LuatOS</b>編程基礎(chǔ)教程:手把手帶你入門物聯(lián)網(wǎng)開(kāi)發(fā)!

    血淚教訓(xùn)總結(jié):Air780EPM的LuatOS二次開(kāi)發(fā)——OneWire協(xié)議調(diào)試注意事項(xiàng)

    在物聯(lián)網(wǎng)設(shè)備開(kāi)發(fā)中,精準(zhǔn)且穩(wěn)定的數(shù)據(jù)傳輸是構(gòu)建智能系統(tǒng)的核心。通過(guò)本文,開(kāi)發(fā)者不僅能掌握規(guī)避常見(jiàn)陷阱的方法,還能學(xué)習(xí)如何利用Air780EPM的硬件特性與LuatOS的靈活A(yù)PI設(shè)計(jì),實(shí)現(xiàn)穩(wěn)定可靠
    的頭像 發(fā)表于 03-20 17:52 ?1147次閱讀
    血淚教訓(xùn)總結(jié):<b class='flag-5'>Air</b>780EPM的<b class='flag-5'>LuatOS</b>二次開(kāi)發(fā)——OneWire協(xié)議調(diào)試<b class='flag-5'>注意事項(xiàng)</b>

    最佳實(shí)踐指南:Air780EPM的LuatOS二次開(kāi)發(fā)——OneWire協(xié)議調(diào)試的注意事項(xiàng)

    注意事項(xiàng): (一)? 硬件注意事項(xiàng) 電源模式選擇 寄生供電模式 : 若使用寄生供電(VDD 接地,數(shù)據(jù)線供電),需在強(qiáng)上拉(通過(guò) MOS
    的頭像 發(fā)表于 03-17 16:57 ?758次閱讀
    最佳實(shí)踐指南:<b class='flag-5'>Air</b>780EPM的<b class='flag-5'>LuatOS</b>二次開(kāi)發(fā)——OneWire協(xié)議調(diào)試的<b class='flag-5'>注意事項(xiàng)</b>