微信小程序藍(lán)牙dfu/ota 升級

? ? ? ? 用小程序給固件升級。代碼實(shí)現(xiàn)了好久了,都忘了。但是效率比較慢。整個(gè)包大約100KB,總共升級耗時(shí)5分鐘左右。從體驗(yàn)上來講就是雞肋。

首先要知道整個(gè)升級的過程。否則也代碼拿去了也不知道怎么回事。

需要的知識點(diǎn):1.低功耗藍(lán)牙基本知識。2.小程序藍(lán)牙api要掌握。3.crc校驗(yàn)基本要會(huì)使用

盜用個(gè)鏈接我覺得講的很清晰固件升級(DFU/OTA)

恩。。我在講解下自己的思路。先將固件升級包解壓會(huì)得到三個(gè)文件。分別是:xxx.dat,xxx.bin和manifest.json 三個(gè)文件。拿到對應(yīng)的buffer并返回存起來

第一:讓設(shè)備進(jìn)入Bootloader狀態(tài)。我們自稱進(jìn)入dfu模式。藍(lán)牙會(huì)自動(dòng)斷開。一般情況下MAC地址發(fā)生變化,末尾+1。看公司的嵌入式工程師如何處理。也可以不變(問同事的)。還有比較坑的是怎么讓設(shè)備進(jìn)入Bootloader狀態(tài)。往xxx90003特征值寫0x01。具體原因不知道。我是看的android代碼。

第二:傳輸init packet(及xxx.dat文件。這個(gè)問題坑了我好久。啥叫init包。)

整個(gè)流程是這樣的,盜個(gè)圖。這個(gè)圖應(yīng)該是官網(wǎng)的。具體是怎么的。我先發(fā)條指令問你,之前有沒有給過你數(shù)據(jù)(通過發(fā)指令 06 01 來確認(rèn) ,指令是定義好的。不清楚的看下前面給的鏈接固件升級(DFU/OTA)。這里就不說了)。通過crc校驗(yàn)。如果你告訴我,數(shù)據(jù)已經(jīng)給完了,那就跳過執(zhí)行下一步。如果沒有,或者數(shù)據(jù)有錯(cuò)誤,或者沒給完。那我就發(fā)(01 01)告訴你我要給你數(shù)據(jù)了。然后你回我(06 01 01)可以給。然后我每次20個(gè)字節(jié)的給你。然后你說已經(jīng)接受完了(06 03 01)。那就繼續(xù)下一步。

第三:傳輸firmware image( 及xxx.bin文件)。這個(gè)也是同理。希望大家舉一反三。不想寫太多文字。省的大家不想看。

最后送上源碼有用的話,麻煩大家給個(gè)星。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容