APP下载

基于STM32的emWin系统应用实例

2017-07-16祝玲钟涛

中国新通信 2017年12期
关键词:二次开发

祝玲+钟涛

【摘要】 emWin系统在嵌入式设备中主要使用方向是文本显示、实时数据显示、传递数据等;根据对emWin的二次开发和利用可以自定义很多控制组件或者子项目,源代码编写完成后的编译下载由于emWin系统第三方插件原因存在差异,从子项目的开发到产品的测试运用均值得关注。

【关键词】 emWin 二次开发 项目应用

一、应用前景

此项目利用emWin系统与STM32单片机通信、人机交互、设计工程控制界面等。最后,将所有的子项目全部合并成了一个完整的项目,其具备图形显示、输入输出交互、简易工具设计、数字控件等功能,能够满足基本生产环境需求。

二、emWin下载协议

HMI设备是enWin系统的载体和体现,为了使用过程中达到方便、快捷、高效的目的,我們对emWin系统进行了再升级,升级后的emWin系统在源代码下载时相对于以往的串口下载方式在速度上提升了很大的空间。经改进后的下载协议有以下两种方式:

2.1 传统下载方式——串口联机下载

此下载方式即利用PC机串口调试设备搜索HMI设备的在线情况以及当前设备的波特率;若正确获取通信数据PC机与HMI设备成功建立通信连接。在此过程中,因为是循环发送联机指令,所以当emWin系统接收到正确的通信信息后,数据的最前面会有上一次的错误通信信息,因此第一条指令会被当作错误指令。故在每次发送联机指令前先发送三个0XFF(空指令);此下载方式的缺点,因为利用串口通信,所以在下载速度上受到了绝对性的限制,例如当我们源代码中编译进了图片信息,下载时间会被图片的大小影响,图片越大下载时间越长。

2.2 升级后下载方式——SD卡脱机下载

升级后的SD卡脱机下载大大节省了下载时间,同时也不依赖PC机,便于生产环境使用;其下载过程为:将源代码下放到emWin系统,emWin利用第三方插件对源代码进行特定编译,最后生成后缀名为.tft的编译文件,可以将此编译文件利用插件将其导出到本地,再装载进SD卡,这样利用装载有编译文件的SD卡就可以为任意一台emWin系统设备脱机下载程序,而且速度大大提高。

三、工程应用注意事项

为了让emWin和工程项目更加兼容,在工程开发中我们修改了一些必要的部分,所以针对此工程将emWin部署进应用中还应注意一些问题,请参阅如下详情:1.设备接受指令结束符为“0XFF 0XFF 0XFF”三个字节,所有指令名称及参数全部采用ASCIA字符串格式,并非是二进制数据,便于阅读和调试。2.由于项目测试中需要用到串口调试功能,所以预留了硬件串口接口,如在生产使用中不需要此功能,请屏蔽硬件接口(屏蔽接口时注意正负极短路)。3.在此工程中emWin设备采用5V电源驱动显示液晶,所以在长时间使用情况下会出现物理故障,这是由于工程测试中电源方案与使用环境不同所造成的,在应用中设备电源方案及设备散热应当重点考虑。

四、工程项目介绍

1、文本框显示子项目。我们利用emWin文本框控件对项目内容,项目简介等文本信息打印显示,同时可以通过触屏来更改显示文本框的大小,就像在windows上操作页面一样方便快捷;文本框在通信过程中使用px.ty的指令调用;其中px代表工程中第x个页面,例如P3代表第三个页面,ty代表某个页面中的第y个文本框控件,例如t0代表某页面下第一个文本框;若想在第一个界面第一个文本框显示“欢迎您”,则可用指令:p0.t0=”欢迎您”来完成。

2、图像显示子项目。我们修改了部分emWin源代码,可以让emWin支持更多的图像格式,例如jpg、gif、jpeg、png等,但是引用图片时应注意图片的像素大小,我们使用的显示设备像素分辨率和预显示的图片分辨率应完全相同,否则图像显示不完全。另外,使用图像过程中应注意图片的大小,因为经emWin系统设备后的图像都会参与编译,若预显示图像过大,则最后程序下载环节使用时间才会越长,反之亦然。

3、数据更新子项目。数据更新子项目包含了进度条、角度显示仪、实时文本显示窗三个基础应用;进度条可以利用emWin系统变量从外界(例如单片机或者PC串口)获取到实时值并写入到进度条内部变量,这样进度条就可以根据变量值实时更新;角度显示仪是利用指针圆环形式表示,例如显示90°时母针在0°位置,子针在90°位置。实时文本显示窗不同于普通文本框,实时文本显示窗可以根据emWin系统变量string实时获取输入设备(项目中是触摸屏键盘输入)的值,并将值以字符串形式实时显示;若用户没有输入则继续显示上次输入内容,若用户更新了输入内容,则会自动刷新字符串缓存区。

五、总结

如果利用单片机与集成emWin系统的HMI设备通信时应注意字符的转换,次项目中HMI设备采用ASCIA编码,而单片机采用二进制码,所以在两者之间进行数据互传时应先将数据内容进行类型变换后才能被正确接收和使用。另外,由于集成emWin系统的HMI设备输入第三方显示设备,所以对电源要求较为严格,在使用过程中应务必参考HMI显示屏厂商提供的数据。

猜你喜欢

二次开发
初中生物教材插图的分类及二次开发
例谈对高中数学教材中习题的二次开发
浅谈CAD软件二次开发的方法及工具
例谈课本习题的“二次开发”
二次开发教材 拓展学生思维
浅谈AM系统铁舾建模的实用二次开发
高中物理教材导入的“二次开发”
单机游戏的二次开发