在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

ZLG致遠電子 ? 2024-02-19 12:11 ? 次閱讀

本篇文章將介紹AWTK-HMI中的MCU端開發方法,包括MCU SDK常用API的說明、使用流程及如何編譯到LinuxSTM32平臺。引言:AWTK-HMI是基于AWTK與AWTK-MVVM開發的低代碼智能串口屏方案,本系列文章介紹如何從零開發HMI程序,包括搭建開發環境、創建HMI運行時工程、修改應用界面以及開發MCU程序。


MCU端簡介

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

e605edf8-cedc-11ee-9118-92fbcf53809c.png

圖1AWTK-HMI工作原理

從官方的Gitee下載awtk-hmi倉庫到本地目錄,可以在mcu/sdk/hmi目錄中瀏覽MCU SDK的API。如果是低資源平臺則可以瀏覽mcu/mini-sdk/hmi目錄的代碼文件。

MCU開發基本流程

在使用API前需要把MCU SDK加入到目標平臺編譯成庫或者直接放到項目中進行編譯,才可以在業務邏輯中調用這些API,關于如何編譯文章后面章節會進行詳細介紹。

MCU SDK常用API

首先講述一下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對象。

MCU SDK開發示例

下圖是一段在STM32平臺上簡單的示例代碼,主要邏輯是在程序主循環中檢測按鍵并設置串口屏變量值,并且不斷檢測串口屏的事件,分發到MCU端程序中:

e612ada4-cedc-11ee-9118-92fbcf53809c.png

圖2MCU SDK使用示例除了上面所展示的API和例子,更多API說明和示例可以參考《MCU SDK》,完整示例工程可以瀏覽mcu/stm32目錄中的幾個STM32工程。

嵌入式Linux平臺使用MCU SDK

接下來介紹如何將MCU SDK編譯到嵌入式Linux平臺。編譯環境需要準備交叉編譯工具鏈、MCU SDK代碼文件最新版awtk與awtk-linux-fb,awtk與awtk-linux-fb放在awtk-hmi目錄中,詳細的操作步驟如下:1. 參考《【從0開始創建AWTK應用程序】編譯應用到嵌入式Linux平臺》文章在awtk-linux-fb內配置交叉編譯工具并編譯awtk;2. 進入到awtk-hmi/mcu/sdk/hmi目錄中,使用交叉編譯工具編譯得到hmi.o目標文件,下面為示例命令(宏定義可自己添加):

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

3. 將hmi.o目標文件打包成庫文件

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庫文件拷貝到板子上運行即可

e61caba6-cedc-11ee-9118-92fbcf53809c.png

圖3編譯得到的libhmi.a庫和test程序

在STM32或其它硬件平臺使用MCU SDK

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

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

e6260a34-cedc-11ee-9118-92fbcf53809c.png

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

e6349ea0-cedc-11ee-9118-92fbcf53809c.png圖5編譯MCU端到STM32平臺其它的硬件平臺和RTOS平臺移植方法也是大同小異,將AWTK編譯后再將MCU SDK編譯成庫文件,最后配置好SDK庫與AWTK庫路徑以及鏈接選項,編譯可執行程序即可。

在Windows平臺使用MCU端模擬程序

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

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

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

e641b7ac-cedc-11ee-9118-92fbcf53809c.png圖6Windows運行MCU端模擬程序

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17199

    瀏覽量

    351918
  • 串口屏
    +關注

    關注

    8

    文章

    540

    瀏覽量

    37496
  • awtk
    +關注

    關注

    0

    文章

    45

    瀏覽量

    237
收藏 人收藏

    評論

    相關推薦

    AWTK最新動態】AWTK 1.8版本發布

    是什么AWTK全稱ToolkitAnyWhere,是ZLG開發的開源GUI引擎,旨在為嵌入式系統、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一
    的頭像 發表于 08-30 12:48 ?462次閱讀
    【<b class='flag-5'>AWTK</b>最新動態】<b class='flag-5'>AWTK</b> 1.8版本發布

    AWTK使用經驗】如何更換AWTK SDK與渲染模式

    AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何播放攝像頭畫面?如何更換
    的頭像 發表于 08-01 08:25 ?1119次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何更換<b class='flag-5'>AWTK</b> <b class='flag-5'>SDK</b>與渲染模式

    Purple Pi OH 更改SDK編譯選項

    開源鴻蒙硬件方案領跑者觸覺智能本文適用于在PurplePiOH開發板更改SDK編譯選項。觸覺智能
    的頭像 發表于 07-06 08:33 ?311次閱讀
    Purple Pi OH 更改<b class='flag-5'>SDK</b>的<b class='flag-5'>編譯</b>選項

    AWTK 開源串口開發(17) - 通過 MODBUS 訪問數組數據

    AWTK串口中,內置MODBUS客戶端通道模型,不用編寫代碼即可實現在ListView中顯示遠程設備上的數組數據。1.功能不用編寫代碼,實現對遠程設備上數組數據的顯示。2.創建項目從模板創建項目
    的頭像 發表于 04-29 08:25 ?369次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(17) - 通過 MODBUS 訪問數組數據

    AWTK 開源串口開發(16) - 提供 MODBUS 服務

    AWTK串口內置MODBUS從站模型,不用編寫一行代碼即可讓串口提供MODBUS服務,讓遠程設備通過MODBUS協議訪問
    的頭像 發表于 04-13 08:24 ?472次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(16) - 提供 MODBUS 服務

    AWTK 開源串口開發(15) - 通過 MODBUS 訪問遠程數據

    AWTK串口內置MODBUSClient模型,支持用MODBUS協議從遠程設備獲取數據。不用編寫代碼即可實現對遠程設備數據的顯示和修改。在AWTK
    的頭像 發表于 03-30 08:23 ?434次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(15) - 通過 MODBUS 訪問遠程數據

    AWTK 開源串口開發(14) - 界面重用

    AWTK串口支持同一個界面綁定不同的數據,本文以家居控制為例,介紹一下界面重用的方法。在家居控制應用中,我們演示了空調和咖啡機界面。現在我們來想一想,如果有多個空調怎么辦呢?當然最直觀的方法,就是
    的頭像 發表于 03-23 08:23 ?387次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(14) - 界面重用

    【從0開始創建AWTK應用程序】編譯應用到RTOS平臺

    AWTK是基于C語言開發的跨平臺GUI框架。本系列文章介紹如何從0開始創建AWTK應用程序,包括搭建開發調試環境、使用AWTK創建Hello工程并在模擬器上運行、將
    的頭像 發表于 03-21 08:23 ?645次閱讀
    【從0開始創建<b class='flag-5'>AWTK</b>應用程序】<b class='flag-5'>編譯</b>應用到RTOS平臺

    AWTK 開源串口開發(13) - 計算器應用

    計算器是一個常見的應用程序,在AWTK串口中,利用fscript表達式計算函數,無需編寫一行傳統的代碼,即可實現一個簡單的計算器應用程序。1.功能計算器是一個很常見的應用,比如在電子秤中,可能
    的頭像 發表于 03-16 08:23 ?5578次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(13) - 計算器應用

    AWTK 開源串口開發(12) - 記事本應用

    記事本是一個常用的應用程序,在AWTK串口中,內置文件模型和文件選擇對話框,無需編寫一行傳統的代碼,即可實現一個簡單的記事本應用程序。記事本是一個很常用的應用,用來編輯和查看文本文件非常方便。在
    的頭像 發表于 03-09 08:23 ?373次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(12) - 記事本應用

    AWTK 開源串口開發(11) - 天氣預報

    AWTK串口內置了XML/JSON/INI等各種數據文件的模型,并支持用HTTP/HTTPS從網絡獲取數據。不用編寫一行代碼,即可實現天氣預報、股票行情、航班查詢和快遞查詢等功能。天氣預報是一個很
    的頭像 發表于 03-05 08:24 ?418次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(11) - 天氣預報

    AWTK開源智能串口方案】設計UI界面并上傳到串口

    本篇文章將介紹如何使用AWStudio設計串口端的UI界面和添加綁定規則,以及怎么將資源文件上傳到串口端。引言:AWTK-HMI是基于
    的頭像 發表于 02-22 08:24 ?765次閱讀
    【<b class='flag-5'>AWTK</b><b class='flag-5'>開源</b><b class='flag-5'>智能</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>方案</b>】設計UI界面并上傳到<b class='flag-5'>串口</b><b class='flag-5'>屏</b>

    AWTK 開源串口開發(9) - 用戶和權限管理

    AWTK串口中,內置用戶管理和權限控制的模型,無需編碼即可實現登錄、登出、修改密碼、權限控制、創建用戶、刪除用戶等功能,本文介紹一下用戶管理和權限控制的基本用法。用戶管理和權限控制是一個常用
    的頭像 發表于 02-19 12:10 ?530次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(9) - 用戶和權限管理

    AWTK 開源串口開發(7) - 屏幕保護

    現在的屏幕其實并不需要屏幕保護程序來“保護”,不過屏幕保護程序會衍生一些其它用途。比如,保護隱私、數據安全和顯示廣告等等。本文介紹一下在AWTK串口中,實現屏幕保護程序的方法。現代屏幕其實并不需要
    的頭像 發表于 01-20 08:24 ?367次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>開發(7) - 屏幕保護

    AWTK開源智能串口方案】HMI端程序移植編譯運行

    本篇文章介紹一下AWTK開源智能串口方案串口
    的頭像 發表于 01-18 08:24 ?973次閱讀
    【<b class='flag-5'>AWTK</b><b class='flag-5'>開源</b><b class='flag-5'>智能</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>方案</b>】HMI端程序移植<b class='flag-5'>編譯</b>及<b class='flag-5'>運行</b>
    主站蜘蛛池模板: 天堂资源站| 欧美3p精品三区| 亚洲你我色| 欧美黄色片在线| 成人自拍视频| 精品一区二区三区免费爱| 日韩毛片在线影视| 性视频久久| 国产精品久久久久久久人热| 午夜啪啪网站| 国产午夜精品理论片| 手机看片福利久久| 在线观看高清视频| 丁香六月婷婷在线| 一级片在线视频| 中文永久免费看电视网站入口| 国内精品一级毛片免费看| 欧美色p| 四虎永久在线精品国产免费 | 欧美伦理一区二区三区| 四虎影院网站| 欧美一级特黄aa大片| 欧美天堂在线观看| 韩国理论三级在线观看视频| www.夜色| bt天堂磁力搜索| 日日插天天操| 日在线视频| 欧美乱xxxxxxxxx| 在线观看中文字幕第一页| 伊人啪| 亚洲国产成a人v在线观看| 亚洲婷婷综合色高清在线| 在线看片你懂得| 色版视频| 日本黄色小视频网站| 人人精品久久| www四虎影视| 夜夜爱夜夜做夜夜爽| 国产又大又黄又粗又爽| 特黄特色大片免费播放路01|