一,前言
周日下午没事儿做,那么继续我的图形图像学习之路,之前弄了一段时间上位机开发,还是回归老本行,嵌入式开发吧~从游戏引擎(HMI)部分来说,我觉得他们设计的核心思路应该是一样的。所以我继续先研究小而精的c代码。毕竟cocos2dx是游戏行业专属,我所在的汽车行业要用HMI引擎,貌似用的也是公司自己开发,或QT或Kanzi等。那么我想先看小而精的代码,从而学习其底层设计思路,所以选择littlevgl继续进行源码进阶学习。
二,lvgl在stm32F4开发板上移植
之前蜻蜓点水的方式,在PC上使用过了lvgl,然后简单的分析了下代码。GUI库lvgl应用及分析--Apple的学习笔记和GUI库lvgl源码分析--Apple的学习笔记,所以今天就来移植下。一般从方法论出发,移植代码可以对代码一点都不了解,仅按help去操作即可。
我今天就是这样子的,在网上及官网找了些资料,比如draw的回调函数,input的注册函数等。反正是没有什么技术含量的。但是在使用lvgl的过程中,觉得它的可移植性及跨平台性很好。所以我已经认证它是优秀开源代码了。不过网上看了些资料,说它一上来就开了很大的buffer,不像emwin可以跑在资源很小的单片机上。但是我不这样认为,因为现在的单片机资源和早期的真的很不同,反正是越来越好,所以emwin可以淘汰了,另外emwin好像不开放源码的,这样的黑盒开源我是不感兴趣的,因为学不到东西。估计将来AI应该也可以在单片机上运行。
三,lvgl运行效果
没法上传手机排的视频,在pc上播放时转录为gif,看上去效果不太好。主要是说明下lvgl的功能。我是下午吃晚饭,一会就移植完了,这个HMI引擎真的很好用!
由于我有触摸屏,所以输入就用button。如下为按key0则button会有按下的效果,字符显示按下的总次数。而下方为万年历,高亮了今天的日期,并且高亮了我要去打疫苗的时间做提醒。一不小心,我等于做了一个简单的应用,哈哈~
HMI.gif
通过手机拍摄再传到微信,再缩小后黏贴入,果然有点糊呀~
image.png
总结
虽然移植是没有什么技术含量的,主要是体验下lvgl包的便利性。就这样先玩玩,然后又要开始源码分析之旅咯突然33度,天太热。今天的学习到此为止,休息,休息休息,一休姐Apple
网友评论