加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • MCU端簡(jiǎn)介
    • MCU開發(fā)基本流程
    • 在嵌入式Linux平臺(tái)使用MCU SDK
    • 在STM32或其它硬件平臺(tái)使用MCU SDK
    • 在Windows平臺(tái)使用MCU端模擬程序
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【AWTK開源智能串口屏方案】MCU SDK使用與編譯運(yùn)行

01/31 16:50
2901
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本篇文章將介紹AWTK-HMI中的MCU端開發(fā)方法,包括MCU SDK常用API的說(shuō)明、使用流程及如何編譯到Linux和STM32平臺(tái)。

引言:AWTK-HMI是基于AWTK與AWTK-MVVM開發(fā)的低代碼智能串口屏方案,本系列文章介紹如何從零開發(fā)HMI程序,包括搭建開發(fā)環(huán)境、創(chuàng)建HMI運(yùn)行時(shí)工程、修改應(yīng)用界面以及開發(fā)MCU程序。

MCU端簡(jiǎn)介

相對(duì)于HMI端(串口屏端),MCU端工程是用戶自己的主控程序,通過調(diào)用MCU SDK的API,可以與HMI端通過串口或網(wǎng)口通信。MCU端程序本身也是支持跨平臺(tái),且不受硬件與系統(tǒng)限制的。

圖?1?AWTK-HMI工作原理

從官方的Gitee下載awtk-hmi倉(cāng)庫(kù)到本地目錄,可以在mcu/sdk/hmi目錄中瀏覽MCU SDK的API。如果是低資源平臺(tái)則可以瀏覽mcu/mini-sdk/hmi目錄的代碼文件。下載鏈接:https://www.gitee.com/zlgopen/awtk-hmi

MCU開發(fā)基本流程

在使用API前需要把MCU SDK加入到目標(biāo)平臺(tái)編譯成庫(kù)或者直接放到項(xiàng)目中進(jìn)行編譯,才可以在業(yè)務(wù)邏輯中調(diào)用這些API,關(guān)于如何編譯文章后面章節(jié)會(huì)進(jìn)行詳細(xì)介紹。

MCU SDK常用API

首先講述一下MCU SDK實(shí)際開發(fā)中常用的API,通過這些API,MCU端可以主動(dòng)獲取、設(shè)置串口屏的變量值,或接收串口屏的事件,實(shí)現(xiàn)雙向交互。

1、hmi_create或hmi_create_with_serial,這一步是創(chuàng)建一個(gè)hmi_t對(duì)象用于跟串口屏端進(jìn)行通信。若需要使用網(wǎng)口通信可以先調(diào)用tk_stream_factory_create_iostream并根據(jù)函數(shù)說(shuō)明傳進(jìn)去正確的url參數(shù),接著再將返回的tk_iostream_t對(duì)象作為hmi_create函數(shù)的參數(shù);

2、hmi_set_prop,通過MCU端設(shè)置串口屏某個(gè)綁定變量值,如:設(shè)置空調(diào)開關(guān)或溫度值;

3、hmi_get_prop,通過MCU端獲取串口屏某個(gè)綁定變量值;

4、hmi_dispatch,用于獲取了串口屏事件后分發(fā)到MCU端程序中,如:監(jiān)聽到串口屏發(fā)生了EVT_PROP_CHANGED事件,MCU端程序接收到該事件后輸出對(duì)應(yīng)的日志信息;

5、hmi_destroy用于MCU端與串口屏端斷開連接時(shí)銷毀hmi_t對(duì)象。

MCU SDK開發(fā)示例

下圖是一段在STM32平臺(tái)上簡(jiǎn)單的示例代碼,主要邏輯是在程序主循環(huán)中檢測(cè)按鍵并設(shè)置串口屏變量值,并且不斷檢測(cè)串口屏的事件,分發(fā)到MCU端程序中:

圖?2?MCU SDK使用示例

除了上面所展示的API和例子,更多API說(shuō)明和示例可以參考《MCU SDK》,完整示例工程可以瀏覽mcu/stm32目錄中的幾個(gè)STM32工程。參考鏈接:https://gitee.com/zlgopen/awtk-hmi/blob/master/docs/mcu_sdk.md

在嵌入式Linux平臺(tái)使用MCU SDK

接下來(lái)介紹如何將MCU SDK編譯到嵌入式Linux平臺(tái)。編譯環(huán)境需要準(zhǔn)備交叉編譯工具鏈、MCU SDK代碼文件最新版awtk與awtk-linux-fb,awtk與awtk-linux-fb放在awtk-hmi目錄中,詳細(xì)的操作步驟如下:

1. 參考《【從0開始創(chuàng)建AWTK應(yīng)用程序】編譯應(yīng)用到嵌入式Linux平臺(tái)》文章在awtk-linux-fb內(nèi)配置交叉編譯工具并編譯awtk;

2. 進(jìn)入到awtk-hmi/mcu/sdk/hmi目錄中,使用交叉編譯工具編譯得到hmi.o目標(biāo)文件,下面為示例命令(宏定義可自己添加):

arm-zlgmcu-linux-uclibcgnueabi-gcc -c hmi.c -I../../../awtk/src -DLINUX

3. 將hmi.o目標(biāo)文件打包成庫(kù)文件

arm-zlgmcu-linux-uclibcgnueabi-ar rcs libhmi.a ./hmi.o

4. 編譯test示例程序命令如下:

arm-zlgmcu-linux-uclibcgnueabi-gcc test.c -o test -I./ -I../../../awtk/src -L./ -L../../../awtk-linux-fb/bin -lawtk -lhmi

最終可以得到test示例程序,將該程序以及awtk-linux-fb/bin目錄下的libawtk.so庫(kù)文件拷貝到板子上運(yùn)行即可

圖?3?編譯得到的libhmi.a庫(kù)和test程序

在STM32或其它硬件平臺(tái)使用MCU SDK

如果想將MCU端編譯到STM32平臺(tái)運(yùn)行,相對(duì)比較簡(jiǎn)單,只需將AWTK部分代碼文件以及MCU SDK所有代碼文件加入到現(xiàn)有的keil工程中進(jìn)行編譯,具體操作可以參考mcu/stm32的README.md《STM32移植指南》介紹。

下圖是使用Keil編譯現(xiàn)有的MCU端移植工程到STM32F429平臺(tái)的工程文件結(jié)構(gòu)以及編譯輸出信息:

圖?4?Keil工程中加入AWTK與MCU SDK代碼文件

圖?5?編譯MCU端到STM32平臺(tái)

其它的硬件平臺(tái)和RTOS平臺(tái)移植方法也是大同小異,將AWTK編譯后再將MCU SDK編譯成庫(kù)文件,最后配置好SDK庫(kù)與AWTK庫(kù)路徑以及鏈接選項(xiàng),編譯可執(zhí)行程序即可。

在Windows平臺(tái)使用MCU端模擬程序

在mcu/simulator目錄下有一個(gè)MCU端模擬器例程,可以模擬發(fā)送和接收數(shù)據(jù),該模擬程序支持通過串口或網(wǎng)口的方式與串口屏連接,并支持收發(fā)串口屏消息。具體如何啟動(dòng)HMI端程序并與模擬器通信可以看系列上一篇文章。

運(yùn)行awtk-hmi目錄中的“prepare.bat”下載最新版awtk與awtk-mvvm倉(cāng)庫(kù),接著在mcu/simulator目錄下執(zhí)行以下命令便可運(yùn)行模擬程序:

sconspython ./scripts/update.py all./bin/mcu_sim.exe

圖?6?Windows運(yùn)行MCU端模擬程序

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
88E1512-A0-NNP2I000 1 Marvell Technology Group Ltd Ethernet Transceiver, 8 X 8 MM, GREEN, QFN-56
$23.12 查看
KSZ8863MLLI-TR 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT
$5.95 查看
KSZ8999 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP208
$23.65 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜