本文導(dǎo)讀
ZMP110x創(chuàng)新串口屏應(yīng)用開發(fā)如何脫離硬件,僅在PC上就完成全部的UI開發(fā)和通信調(diào)試工作?下面就跟隨小編步伐,一起玩轉(zhuǎn)虛擬串口屏開發(fā)模式吧。
普通串口屏需要拿到實(shí)物后,使用對應(yīng)的上位機(jī)進(jìn)行開發(fā)、燒錄,然后下載到串口屏中進(jìn)行驗(yàn)證;但既然都用串口屏了,電腦上也有串口,也有屏幕,為啥開發(fā)過程不在電腦上一步到位呢?下面一起看下ZMP110x創(chuàng)新串口屏應(yīng)用開發(fā)如何以虛擬串口的方式在PC上完成全部的UI開發(fā)和通信調(diào)試工作。
AWTK 全稱 Toolkit AnyWhere,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機(jī)和 PC 打造的通用 GUI 引擎。基于“AnyWhere”這一特性,在AWTK Designer中拖拽生成的UI,本來就可以在“AnyWhere”中運(yùn)行。
實(shí)現(xiàn)思路
基于這一思路,只需將PC端模擬運(yùn)行的串口屏程序的“串口”補(bǔ)齊,使其具備收發(fā)串口數(shù)據(jù)的功能,就能僅在PC端完成ZMP110x串口屏的開發(fā)驗(yàn)證!
虛擬串口
這一步有許多的現(xiàn)有方案,本文就不再贅述。
打開串口
使用AWTK集成的串口流擴(kuò)展模塊tk_iostream_ serial_t中的tk_iostream_serial_create函數(shù)打開串口。
收發(fā)數(shù)據(jù)
串口屏中接收到數(shù)據(jù)會(huì)發(fā)送一個(gè)自定義的消息,調(diào)用串口指令解析函數(shù),并把數(shù)據(jù)傳入函數(shù)中;為了兼容串口屏程序,PC端也采用了同樣的操作。
至于發(fā)送數(shù)據(jù)就更加簡單,增加與串口屏中同名的發(fā)送函數(shù),在函數(shù)中調(diào)用串口輸出流,發(fā)送串口數(shù)據(jù)。
實(shí)際操作
如圖所示,經(jīng)過優(yōu)化,客戶在實(shí)際使用時(shí)僅需拷貝兩個(gè)文件夾,修改兩個(gè)文件即可。
1.以新建的空白UI為例,將“pc_uart_debug”和“serial”兩個(gè)文件夾粘貼在UI工程路徑下的src文件夾:
?
圖1全部更改圖示
串口默認(rèn)配置為baudrate=115200 bytesize=8 stopbits=1 flowcontrol=0 parity=0,如需修改,可在pc_uart_debug/ pc_uart_debug.h中修改:
#define PC_UART_BAUDRATE 115200 #define PC_UART_BYTESIZE 8 #define PC_UART_PARITY 1 #define PC_UART_STOPBITS 0 #define PC_UART_FLOWCONTROL 02.在“application.c”中添加串口初始化及解初始化函數(shù):
/** * 當(dāng)程序初始化完成時(shí)調(diào)用,全局只觸發(fā)一次。 */ static ret_t application_on_launch(void) { pc_uart_debug_init(); //PC端串口初始化 return RET_OK; } /** * 當(dāng)程序退出時(shí)調(diào)用,全局只觸發(fā)一次。 */ static ret_t application_on_exit(void) { pc_uart_debug_deinit(); //PC端串口解初始化 return RET_OK; }3.用文本編輯器打開“SConscript”,由于實(shí)現(xiàn)枚舉串口的為C++程序,所以得在源文件中加入cpp文件:
import os import sys import platform env = DefaultEnvironment().Clone() BIN_DIR = os.environ['BIN_DIR'] LIB_DIR = os.environ['LIB_DIR']; sources = Glob('**/*.c') + Glob('*.c') + Glob('**/*.cpp') env.Program(os.path.join(BIN_DIR, 'demo'), sources, LIBS = env['LIBS'])
修改完畢,在AWTK Designer中打開此工程,編譯后點(diǎn)擊模擬運(yùn)行,在彈出的UI窗口中會(huì)出現(xiàn)選擇串口的白色小框;此時(shí)電腦上已有兩個(gè)互相連接的虛擬串口COM5和COM6,點(diǎn)擊OPEN按鈕,令UI程序使用COM5,在串口助手中使用COM6,即可完成接下來的開發(fā)/測試工作:
圖2運(yùn)行效果
恢復(fù)到實(shí)體串口屏
在電腦端完成開發(fā)后,將此UI加入到串口屏eclipse工程中仍舊僅需屏蔽“tests”文件夾,即可正常編譯,編譯完成后就能將UI固件下載到實(shí)體串口屏中,完成整個(gè)流程:
圖3eclipse工程中編譯結(jié)果
效果展示
以串口屏的智能家居“hmi_demo”為例,加入上述文件后就能在PC端完成演示。
審核編輯:湯梓紅
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3664瀏覽量
130811 -
PC
+關(guān)注
關(guān)注
9文章
2138瀏覽量
155976 -
串口
+關(guān)注
關(guān)注
14文章
1581瀏覽量
78514 -
虛擬串口
+關(guān)注
關(guān)注
3文章
63瀏覽量
14123 -
串口屏
+關(guān)注
關(guān)注
8文章
578瀏覽量
38068
原文標(biāo)題:【技術(shù)分享】玩轉(zhuǎn)ZMP110x創(chuàng)新串口屏的虛擬串口屏開發(fā)模式
文章出處:【微信號(hào):立功科技,微信公眾號(hào):立功科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
ZDP1440串口屏應(yīng)用開發(fā)如何使用虛擬串口調(diào)試


Keil 開發(fā)環(huán)境與虛擬串口屏綁定調(diào)試
串口屏開發(fā)環(huán)境與虛擬串口屏綁定調(diào)試-V2.0
基于AWTK推出的ZMP110x串口屏應(yīng)用方案
2小時(shí)可以在ZMP110x創(chuàng)新串口屏上做一個(gè)什么樣的UI?
虛擬串口屏工作原理
【串口屏基礎(chǔ)知識(shí)分享】什么是指令集串口屏?什么是組態(tài)串口屏?

評(píng)論