玩转ZMP110x创新串口屏的虚拟串口屏开发模式

描述

本文导读

ZMP110x创新串口屏应用开发如何脱离硬件,仅在PC上就完成全部的UI开发和通信调试工作?下面就跟随小编步伐,一起玩转虚拟串口屏开发模式吧。

  普通串口屏需要拿到实物后,使用对应的上位机进行开发、烧录,然后下载到串口屏中进行验证;但既然都用串口屏了,电脑上也有串口,也有屏幕,为啥开发过程不在电脑上一步到位呢?下面一起看下ZMP110x创新串口屏应用开发如何以虚拟串口的方式在PC上完成全部的UI开发和通信调试工作。  

    AWTK 全称 Toolkit AnyWhere,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎。基于“AnyWhere”这一特性,在AWTK Designer中拖拽生成的UI,本来就可以在“AnyWhere”中运行。        

实现思路

基于这一思路,只需将PC端模拟运行的串口屏程序的“串口”补齐,使其具备收发串口数据的功能,就能仅在PC端完成ZMP110x串口屏的开发验证!  

虚拟串口

这一步有许多的现有方案,本文就不再赘述。  

打开串口

使用AWTK集成的串口流扩展模块tk_iostream_ serial_t中的tk_iostream_serial_create函数打开串口。    

收发数据

  串口屏中接收到数据会发送一个自定义的消息,调用串口指令解析函数,并把数据传入函数中;为了兼容串口屏程序,PC端也采用了同样的操作。  

至于发送数据就更加简单,增加与串口屏中同名的发送函数,在函数中调用串口输出流,发送串口数据。  

实际操作

如图所示,经过优化,客户在实际使用时仅需拷贝两个文件夹,修改两个文件即可。  

1.以新建的空白UI为例,将“pc_uart_debug”和“serial”两个文件夹粘贴在UI工程路径下的src文件夹:      

串口  

图1 全部更改图示      

串口默认配置为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  0
    2. 在“application.c”中添加串口初始化及解初始化函数:
/**
 * 当程序初始化完成时调用,全局只触发一次。
 */
static ret_t application_on_launch(void) {
  pc_uart_debug_init();  //PC端串口初始化
  return RET_OK;
}


/**
 * 当程序退出时调用,全局只触发一次。
 */
static ret_t application_on_exit(void) {
  pc_uart_debug_deinit();  //PC端串口解初始化
  return RET_OK;
}
  3. 用文本编辑器打开“SConscript”,由于实现枚举串口的为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中打开此工程,编译后点击模拟运行,在弹出的UI窗口中会出现选择串口的白色小框;此时电脑上已有两个互相连接的虚拟串口COM5和COM6,点击OPEN按钮,令UI程序使用COM5,在串口助手中使用COM6,即可完成接下来的开发/测试工作:

    串口

图2 运行效果  

恢复到实体串口屏

在电脑端完成开发后,将此UI加入到串口屏eclipse工程中仍旧仅需屏蔽“tests”文件夹,即可正常编译,编译完成后就能将UI固件下载到实体串口屏中,完成整个流程:  

串口

图3 eclipse工程中编译结果    

效果展示

以串口屏的智能家居“hmi_demo”为例,加入上述文件后就能在PC端完成演示。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分