|
GUI解决方案实训分成两个部分,第一个部分是熟悉STM32H7R7的烧录以及LVGL工程运行调试,第二个部分是对TouchGFX工程的运行调试及二次开发,可以看出来ST官方主要侧重对TouchGFX的推广及应用,但是我个人更喜欢LVGL,LVGL开发的自由度高,移植简单方便,可以在几乎任何带屏幕显示的平台上进行,几乎不受到硬件平台的RAM及FLASH限制(RAM最小4~8K即可运行),相对于TouchGFX的缺点是,缺少TouchGFX独有的炫酷屏幕切换特效,以及无法直接显示视频(需要通过动态显示图片帧的方式进行)。由于实训是以LVGL开始的,所以就先分享LVGL部分的内容,后续更新TouchGFX部分的内容。 实验平台为正点原子STM32H7R7开发板,并配套7寸800*480液晶屏:
使用的下载器为STLINK V3紧凑型小下载器,即使是SWD模式下,烧写速率比起STLINK V2和JLINKV9都要快很多:
将下载器以及屏幕连接到开发板,开始实训:
LVGL咖啡机例程是CubeIDE工程,工程分为Boot和Application两个子工程,因为STM32H7R7 MCU是用内部FLASH引导外部FLASH APP运行的方式工作的,因此Boot子工程生成在内部FLASH运行的Bootloader,Application子工程生成在外部FLASH运行的APP,两者都需要烧录,都可以通过CubeProg进行烧录。将Boot工程和Application工程都在CubeIDE下编译完毕:
将正点原子H7R7开发板的外部FLASH(MX25UM25645G_ATK-DNH7R7_HSLV_ExtMemLoader.stldr)烧录算法放到CubeProg目录相应的位置下,并移除跟此算法地址冲突的MT25TL01G_STM32H745I-DISCO.stldr即STM32H745Discovery官方开发板的算法:
在CubeProg分别烧录STM32H7R7外部FLASH的APP及内部FLASH的Bootloader,先烧录外部FLASH的APP,APP所对应的HEX文件放在APP子工程的Release目录下:
在EL选项卡中选择正确的烧录算法打勾:
连接MCU并烧录成功:
使用同样的方式烧录内部FLASH的Bootloader,烧录内部FLASH取消EL的打勾:
在16号当天实训的时候,程序是正常加载运行的,但是我分配到了一块疑似晶振有问题的次品开发板,在运行过程中会直接卡死,因此我跟正点原子的LVGL AE 袁工进行交流,在开发板咖啡机例程的btim定时器中断中加入一个闪灯动作来判断是否硬件问题:
运行结果是,出现卡死的时候,连btim定时器中断所加入的闪灯动作都停止了,那就可以判断跟软件没有任何关系,是硬件问题了,换了一块开发板之后一切正常。这个小插曲无伤大雅,更看出了正点原子企业对于排查客户硬件问题的认真态度,点赞! |
经验分享 | STM32CubeIDE 调试神技:条件断点与观察点,搞定长周期复现疑难杂症
经验分享 | STM32H723 SPI 通讯异常排查:实时观察窗口的 “隐形干扰” 解决方案
经验分享 | STM32H7 SPI NSS 脉冲模式灵活应用:解决外置 ADC 通信干扰问题
经验分享 | STM32H7 双核调试配置:STM32CubeIDE 下 M7+M4 协同调试实操
经验分享 | STM32H7 TouchGFX 花屏速解:更换 HyperRAM 后 latency 值适配实操
实战经验 | 使用STM32CubeIDE调试Zephyr RTOS
STM32CubeIDE 2.0.0:解耦STM32Cube MX与优化后的项目工作流程
经验分享 | STM32H743 BDMA+LPTIM+LPUART应用演示
经验分享 | STM32H7Sx MCE 加密解密:外部存储安全防护全解析
如何在STM32和Arduino上实现卷积神经网络
微信公众号
手机版