本帖最后由 lingmao320 于 2025-2-13 20:08 编辑
注:本移植说明是本人在学习熊家余的教程做的笔记。 需要更详细的讲解请看元视频教程。 1硬件 主板:野火STM32F429-V2 开发板:野火挑战者(非必要) 屏:野火7寸RGB电容触摸屏800*480 下载器:野火fire-DAPHigh 2 环境 操作系统:win11家庭中文版 STM32CubeMX: V6.13.0 固件包版本:STM32CubeF4 Firmware Package V1.28.1 TouchGFX : V4.24.2 Keil : V5.23
3 STM32CubeMX流程 3.1 新建工程 打开STM32CubeMX,点击“File”-“New Project”,搜索双击选择“STM32F429IGT6”新建工程
3.2 配置RCC
3.3配置SYS 可选其他定时器,我这里选TIM7
3.4配置DMA2D 我这里选择RGB565,野火的这款屏是支持RGB888的,选择RGB888后续引脚和LTDC配置做相应的更改就行,然后打开中断。
3.5配置LTDC 按这个改就行了,具体的数据可以找一个野火的例程查看或者自己都屏幕的手册修改。比如打卡\1-[野火《STM32库开发实战指南》(标准库源码)【优先学习】\1-书籍配套例程-F429IG-V1V2\1-书籍配套例程-F429IG-V1V2_20240202\27-28-LTDC—液晶显示\F429_V2例程 对照修改即可。 然后配置层参数: 起始地址也在例程中去查: 然后打开中断: 中断优先级先不管,后续统一配置。 最后配置引脚: 引脚分配硬件来,这里查野火F429V2的原理图,一个一个引脚进行配置:
3.6配置FMC 跑GUI需要外部的SDRAM,配置FMC: 我这里使用SDRAM1控制器。查硬件原理图,SDRAM的CS和CLK接PH6,PH7脚,所以选则SDCKE1+SDNE1 然后配置SDRAM1,主要是地址,延迟这些: 直接找例程中的数据,其中Write recovery time 按例程中的配置2软件自动改为4,不影响。
3.7配置CRC 打开即可:
3.8配置Free-RTOS 堆载改大点即可。然后配置一个任务:
3.9 配置touchGFX 开启双缓冲,开始地址0xD000000,结束地址0xD00BB800。 如果touchGFX插件不能用,按如下方式打开:
3.10 配置NVIC
3.11 配置时钟
3.12 配置项目 给项目取名,选择编译器及版本,缓存改大点
3.13代码生成配置
3.14 生成代码
4 touchGFX流程 4.1 找到生成的代码目录,在TouchGFX目录下选择
双击运行。 4.2 随便放个背景和按钮测试一下就行
4.3 点击仿真
!!必须点,会自动生成一些文件。
4.4 仿真结束就关闭touchGFX
5 keil代码配置 5.1 找到生成的代码目录,在MDK-ARM目录下选择keil项目双击运行。 5.2 拷贝一个野火例程的sdram的驱动文件夹放到项目中.,我这里是在Drivers目录下新建BSP文件夹同一存放。
5.3加入工程,并记得包含头文件
编译报错需要修改inculde的引用路径。
5.4 修改fmc.c 包含头文件,注释掉//SDRAM_HandleTypeDef hsdram1宏定义,因为在sdram.c中重复定义了,然后初始化SDRAM
5.4 修改TouchGFXHAL.hpp
5.5 编译下载验证
成功! 谢谢观看!生成的例程文件太大,就不上传了
|