宣传语:
是相框,也是日历; 可以放在床头,也可以摆在桌上; 记录你的欢乐,也懂得你的冷暖~
正式点的介绍:
电子相框是显示数码照片而非纸质照片的相框。与传统的纸质相框相比,它具有可自由打印,易于更新和可回收的优点。
在本项目中,我在STM32H745开发板上实现了基于RT-Thread和LVGL的网络天气数码相框。天气查询使用了高德的云服务,服务端是高德提供的开放接口,客户端是自己开发的。另外,由于ST和RT-Thread官方均没有对STM32H745上运行RT-Thread做支持,本项目也可以作为STM32H745上运行RT-Thread的基础版本。由于RT-Thread和LVGL的轻量性,该项目可以很容易地移植到类似的成本较低的硬件方案上。
本项目是 【赋能物联网——2022得捷创新设计大赛】 参赛项目,大赛链接:
https://www.eeworld.com.cn/huodong/digikey_iot_contest_2022/?sid=102
作品帖首发于电子工程师世界论坛EEWorld.com,详情请移步论坛的大赛专区:
https://bbs.eeworld.com.cn/forum-275-1.html

整个作品中,硬件部分包括:
主控STM32H745片上硬件资源使用了GPIO、UART、I2C、LTDC、SDMMC、FMC,分别用于实现:
软件主要功能划分如下:

软件整体基于RT-Thread操作系统,使用了系统自带的一些组件和一些外加软件包。
业务功能通过几个线程实现:
每个线程具体执行的工作如图中的文字描述;
本节描述相关功能的软件实现原理。
由于RT-Thread目前还不支持STM32H745芯片,这部分主要开发工作包括:
本项目中 ,这部分主要工作在于移植了RT-Thread系统最小系统。
图形用户界面主要基于开源的LVGL,以RT-Thread软件包形式集成到项目上。这部分除了LVGL开源代码外,本项目开发的部分有:
本项目中 ,这部分主要工作在于为LVGL开发了显示、触摸驱动、SDRAM支持,以及完成业务界面代码。
配置和照片保存,主要实现方式:
本项目中 ,这部分主要工作在于为eMMC开发了RT-Thread驱动,以及实现了业务数据、图片文件的存储。
联网和天气查询,主要实现方式:
本项目中 ,这部分主要工作在于开发了搜狐IP查询、高德定位、高德天气客户端代码,以及实现了WiFi联网等相关业务的实现。
图片传到设备,主要实现方式:
本项目中 ,这部分主要工作在于大量调试工作。
默认情况下:
开发板的STMOD#2连接的是PB15(通过SB13零欧电阻),STMOD#3连接的是PI2(通过SB11零欧电阻):

需要修改为:去除SB11和SB13两个零欧电阻,短接SB12和SB16两个空位;
修改后实物图:

前面已经介绍了,模组用的ESP-01S(很容易买到)。
连接方式如下图:

(图中右下角黑色的是ESP-01S模组,蓝色是开发板附赠的STMod扩展板)
源码仓库:
https://gitee.com/STM32H745/RTT-H7.git

演示视频:
https://www.bilibili.com/video/BV1Re4y127JD/
感谢得捷赞助本次大赛。
项目开发初期决定使用RT-Thread实时操作系统(RTOS)和LVGL图形用户界面(GUI)框架,不是ST官方CubeMX工具已经支持的FreeRTOS和STemWin,同时RT-Thread官方也尚未支持STM32H745芯片和开发板。因此,整个开发过程中,底层驱动的支持部分的难度和工作量均比预想的要大。
因为官方的CubeMX工具支持的FreeRTOS中所有片上硬件资源以及板载外设均已经支持了,而且经过了官方开发人员的测试验证。使用RT-Thread和LVGL,所有片上硬件和板上外设驱动需要自己移植、开发、验证。期间因为硬件功能调试,查阅了大量资料,花费了很多时间和精力。
另外,也正是因为使用了RT-Thread和LVGL,这一套非官方支持的基础技术架构。顺便复习了很多硬件相关的知识点,同时实操了RT-Thread的驱动开发,这也是过程中收获或者收益最大的内容。得捷大赛获奖作品分享,查看更多大赛作品,在【EEWorld-论坛】搜关键词“DigiKey创意大赛",与原作者一起交流。