本帖最后由 shanggelaile 于 2020-7-10 11:49 编辑
野火H743+touchgfx功能测试作者:尚亚期 概述:产生背景:rtt的示例代码中没有野火h743的代码,正好自己也在学习rtt,也有一块板子,就想借学习的机会做个小东西。 硬件方案:野火h743开发板,包括stm32h743iit6,sdram(W9825),sd卡(8G),Esp8266模块,野火七寸电容屏(800*480),GT9147触摸芯片 软件方案:rtthread实时操作系统,touchgfx图形框架 实现功能:可以通过esp8266实时更新时间,并显示在touchgfx的钟表上,其他功能暂未实现 RT—Thread使用情况概述:串口1:用于shell控制台 串口3:用于esp8266 Sdram:用到了sdram的库文件 Ltdc:未用到RTT的ltdc的库,自己做了简单移植 Sd卡:用到了RTT的sd卡的库,DFS虚拟文件系统,并且加入了fatfs文件系统 Esp8266:用到AT client,AT socket,SAL组件,netdev组件 RTC:用到NTP时间自动同步,开机同步 Touchgfx:将其中自动生成的freertos文件OSWrappers.c用RTT重写 硬件框架:
核心代码介绍: SDRAM:在board文件夹更改kconfig,在cubemx中配置即可,无特殊添加 SD卡:因为rtt的sd卡驱动库中并不支持H7系类的SD卡读写(原因是用了dma读写的sd卡,H7的sd卡dma比较特殊),移植的最新版的正点原子H743的SD卡读写文件 GT9147:移植的野火的软件IIC读写,以及野火提供的GT9147驱动 电容屏:因为起初移植的rtt本来的ltdc的库,发现初始化时会出现地址配置错误的问题,所以就自己仿照cubemx生成的做了一个,同时还兼容lcd_port.h文件里的配置。如下:
Esp8266:使用串口3,开启AT commands client和AT Socket,此时进行了开机同步时间,如下所示,开启NTP功能: INIT_APP_EXPORT(ntp_sync); 软件框架
软件模块说明: 首先用cubemx配置好sdram引脚,ltdc引脚,sd卡引脚,uart1,uart3,配置touchgfx生成器,将地址指向sdram中所用地址,开启freertos,并生成代码。 更改board中的kconfig和SConscript,并且添加touchgfx所需的SConscript。 移植正点原子h743的sdmmc驱动,并进行测试。 配置memuconfig中的at指令,连接esp8266 演示效果: 视频地址: https://www.bilibili.com/video/BV1pZ4y1u7Vg/ Github代码地址 https://github.com/shanggelaile/rtt-fire-h743 |