TFTLCD 开发记录 -- 2、SDRAM配置
配置SDRAM
新建工程,选择芯片型号为STM32H743IIT6

时钟配置使用外部晶振

时钟树配置,最高跑到400M,直接修改成400,系统会自动计算出来

驱动屏幕外部SDRAM必不可少,所以先要正确配置SDRAM,正点原子开发板上用到的是 W9825G6KH 这颗SDRAM,容量32MByte。原理图如下:

使用FMC接口操作SDRAM,对FMC接口进行配置

根据W9825G6KH 数据手册里的参数配置以下内容

GPIO配置不用管,正点原子就是按照这个设计的

点击生成代码,开发环境选择STM32CubeIDE

SDRAM测试
由于测试需要使用printf函数输出信息,故要先配置下串口

初始化串口函数:
编写sdram.c
引入头文件sdram.h
主函数中调用 SDRAM初始化函数和测试函数,输出测试信息:

最终显示,SDRAM配置成功

SDRAM配置成功之后,在定义变量时,可以直接指定变量存储到外部SDRAM 空间。以上的测试方法是使用指针访问SDRAM空间,未免过于麻烦。在实际使用中,可以直接定义一个非常大的数组,将整个数组都存储到SDRAM上,然后动态的使用SDRAM内存空间。要注意使用这种方法定义变量时,必须在函数外把它定义成全局变量,才可以存储到指定地址上。
如果使用KEIL开发环境,操作就比较简单,在定义变量时使用如下方式:
如果使用STM32CubeIDE,则稍微麻烦点,需要在STM32H7431ITX_FLASH.ld文件中做如下修改,添加部分代码:

然后将变量定义到SDRAM中,使用:
编译之后,可以在STM32CubeIDE右侧Memory Regions看一下编译信息

最后可以看一下,Memory Details,会有定义的变量出现

以上,SDRAM就配置成功了
完整的工程代码开源,在https://www.bilibili.com/read/readlist/rl758628?spm_id_from=333.999.0.0 视频下方简介可以看到