1、序
近期在微信群中看到大佬们有过讨论gui的话题,本人曾经也是关注过,但一直未深入,很多次擦肩而过,因此借这个契机,就研究下。
2、主要参考资料及论坛
1、硬汉嵌入式论坛中的emwin板块,这里的资料相当丰富了,干货很多。
2、网上有《emWin 2 天速成实例教程》,可以在其他网站的备份下载,阿莫电子已经落堕了。
3、野火有emwin的教程视频,模拟器使用的vs2019的。
3、编译工具准备
3.1、VC++6.0
这个软件虽然很老了,但是emwin模拟器中,依然是比较顺畅的,比起vc2013以及之后的visual studio,更轻量,更快速,不用配置,开箱机用。vc2013及以上的版本也有官方的配置运行方式,但嫌弃软件太大,因此没用vs,尝试了VS Express 2013 for Desktop这个软件运行模拟器,编译失败,说明还是需要完整版的visual studio。
硬汉论坛也推荐使用vc++6.0,而且提供有配置好的、例程很全的emWin6.14 VC6.0压缩包下载,(硬汉哥还是比较强悍的~),同时硬汉哥也说了怎么在官方的软件包中,配置成vc++6.0的环境。因此本人依然使用了vc++6.0,win10依然可以使用,兼容运行可以参考:VC6.0中文版下载(支持XP、Win7、Win8、Win10)_C语言中文网 (biancheng.net)。
3.2、Codeblocks
这个软件通过验证,需要安装32位的mingw编译器,具体来说:以下组合可以正常运行emwin,(电脑如果还有安装了其他的gcc编译器的,建议不要添加系统环境变量中,否则codeblocks会首选系统环境变量path中的gcc,导致无法定位32位的mingw路径,从而编译失败。)
A:codeblocks-13.12mingw-setup或codeblocks-13.12mingw-setup-TDM-GCC-481;这个版本未测试,毕竟比较老了,只是在网上老教程中看到这个软件可以编译emwin。
B:codeblocks-17.12mingw-setup(其实还有一个16.01版本,codeblocks的更新频率是比较缓慢的,没有codelite频繁)
C:codeblocks-17.12mingw-nosetup
D:codeblocks-20.03-32bit-setup或者codeblocks-20.03-32bit-nosetup
或者codeblocks-20.03-nosetup或者codeblocks-20.03-setup.exe加上17.12版本或者13.12的mingw(编译器选项中设定mingw路径即可),不能使用最新的20.03+20.03自带的mingw,其实就是不能使用64位的mingw编译器,IDE随便弄个版本都行。20.03的IDE能看到下面的配置即可成功编译运行。
Codeblocks具体下载地址:Code::Blocks - Browse Files at SourceForge.net
4、测试例程
通常模拟器自带vc++6.0和codeblocks的工程。5.40以上就没有vc++6.0的工程,转而使用了vs2013及更高的visual studio软件,但codeblocks工程依然有。
4.1、vc++6.0平台
软件使用SeggerEval_WIN32_MSVC_MinGW_GUI_V538。例程我参考了硬汉的教程,使用了guibuilder软件来做一个简单的画面,无任何控件之间的关联。具体的效果图如下:
具体的配置流程可以参考硬汉教程:《STM32-V4 开发板STemWin 教程》,虽然硬汉使用的emwin5.24,但基本的功能是类似的,这里不再转载详说。
首先,画面部分是额外添加的,application目录中的其他文件排除编译,添加GUIDEMO_Start_1.c文件,sample文件目录,可以添加模拟器中的tutorial例程,当然先排除编译,否则会有两个maintask函数报错的。其他文件可以暂时不深入研究。
其次,因为guibuilder里面把界面设置成800*400,因此LCDConf.c文件需要修改分辨率大小。
最后,编译运行即可。
4.2、Codeblocks平台
与《emWin 2 天速成实例教程》统一,使用了SeggerEval_WIN32_MSVC_MinGW_GUI_V528版本的模拟器,
首先,在application目录中,删除不必要的文件。为啥没有排除编译,就是因为codeblocks没这个功能,而且配置起来麻烦,索性删除。
然后,添加GUIDEMO_Start_1.c文件
最后,编译运行即可。
开通了公众号,欢迎扫描关注我的公众号,获取更多精彩内容。