在官方例程factory_demo的基础上可以进行DIY的开发。例程factory_demo有着比其他例程更全的板载模块或芯片的驱动程序,也是有着非常好的GUI框架。GUI平台用的是LVGL,是一款比较常见的GUI编辑器,适合大多数的开发人员。也能利用例程factory_demo快速开发自己的创意作品。
首先是熟悉例程的文件结构,下图是例程编译前的样子

只有两个文件夹,一个是main文件夹,放的是例程的所有源码;另一个是spiffs,放的是MP3播放器的音乐文件和语音功能的提示语文件,MP3文件格式是mp3,语音提示文件的格式是wav。
main文件夹内的文件架构如下

根目录是主函数和设置相关的源码,app文件夹是是各个界面的功能实现的源码;gui文件夹是LVGL相关的源码,并且也包括字体库和图片的编码;remaker是补充函数。
app文件夹内容如下

共16个文件实现6个界面的功能。
gui文件夹内容如下

根目录是各个界面的LVGL界面源码;font文件夹是字体编码;image是各个界面的图片或图标编码。
如果想修改某个界面的话可以直接在对应的.c和.h文件进行修改;如果要删除或添加界面的话也可以直接添加对应的.c和.h文件,然后在对应的数组中添加相应的界面处理接口。这次主要分享如何快速进行修改和删除某个界面,添加则类似。
首先各个界面的管理在ui_main.c中,打开后在前几行就可以看见对应界面的接口注册。

首先是item数组,管理着各个界面的顺序、控制接口和显示接口等。需要注意的是在修改item数组后,如果元素与原先的6不相等的时候也需要修改g_led_item的元素个数,否则会出现菜单数目和界面数目不一致的问题。效果如下。
如果删除Help和About Us界面后对应的代码如下

那么对应的效果如下
这样就可以当做一个简易的桌面摆件了。可以在Sensor Monitor界面打开人体检测功能,接入有电池的底座,就可以放在桌面当摆件了,并且也是人远离时间较长就会自动息屏省电,当人走到面前会自动亮屏显示温湿度信息。
我要赚赏金
