

圖?1?AWTK-HMI工作原理
從官方的Gitee下載awtk-hmi倉庫到本地目錄,可以在mcu/sdk/hmi目錄中瀏覽MCU SDK的API。如果是低資源平臺則可以瀏覽mcu/mini-sdk/hmi目錄的代碼文件。下載鏈接:
首先講述一下MCU SDK實際開發中常用的API,通過這些API,MCU端可以主動獲取、設置串口屏的變量值,或接收串口屏的事件,實現雙向交互。
1、hmi_create或hmi_create_with_serial,這一步是創建一個hmi_t對象用于跟串口屏端進行通信。若需要使用網口通信可以先調用tk_stream_factory_create_iostream并根據函數說明傳進去正確的url參數,接著再將返回的tk_iostream_t對象作為hmi_create函數的參數;
2、hmi_set_prop,通過MCU端設置串口屏某個綁定變量值,如:設置空調開關或溫度值;
3、hmi_get_prop,通過MCU端獲取串口屏某個綁定變量值;
4、hmi_dispatch,用于獲取了串口屏事件后分發到MCU端程序中,如:監聽到串口屏發生了EVT_PROP_CHANGED事件,MCU端程序接收到該事件后輸出對應的日志信息;
5、hmi_destroy用于MCU端與串口屏端斷開連接時銷毀hmi_t對象。
下圖是一段在STM32平臺上簡單的示例代碼,主要邏輯是在程序主循環中檢測按鍵并設置串口屏變量值,并且不斷檢測串口屏的事件,分發到MCU端程序中:

https://gitee.com/zlgopen/awtk-hmi/blob/master/docs/mcu_sdk.md
arm-zlgmcu-linux-uclibcgnueabi-gcc -c hmi.c -I../../../awtk/src -DLINUXarm-zlgmcu-linux-uclibcgnueabi-ar rcs libhmi.a ./hmi.oarm-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庫文件拷貝到板子上運行即可

下圖是使用Keil編譯現有的MCU端移植工程到STM32F429平臺的工程文件結構以及編譯輸出信息:

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

運行awtk-hmi目錄中的“prepare.bat”下載最新版awtk與awtk-mvvm倉庫,接著在mcu/simulator目錄下執行以下命令便可運行模擬程序:
sconspython ./scripts/update.py all./bin/mcu_sim.exe

【AWTK開源智能串口屏方案】方案介紹和工作原理
【AWTK開源智能串口屏方案】HMI端程序移植編譯及運行
??關聯產品
??技術交流群
更多往期文章,請點擊“?閱讀原文?”。






