TFTLCD 開發(fā)記錄 -- 2、SDRAM配置
配置SDRAM
? ? ? ?????新建工程,選擇芯片型號為STM32H743IIT6

????????時鐘配置使用外部晶振

????時鐘樹配置,最高跑到400M,直接修改成400,系統(tǒng)會自動計算出來

???????
?????驅(qū)動屏幕外部SDRAM必不可少,所以先要正確配置SDRAM,正點原子開發(fā)板上用到的是?W9825G6KH 這顆SDRAM,容量32MByte。原理圖如下:

????????????使用FMC接口操作SDRAM,對FMC接口進(jìn)行配置

????????根據(jù)W9825G6KH?數(shù)據(jù)手冊里的參數(shù)配置以下內(nèi)容
? ? ??

????????GPIO配置不用管,正點原子就是按照這個設(shè)計的

????????點擊生成代碼,開發(fā)環(huán)境選擇STM32CubeIDE

SDRAM測試
????????由于測試需要使用printf函數(shù)輸出信息,故要先配置下串口

????初始化串口函數(shù):
編寫sdram.c
引入頭文件sdram.h
????主函數(shù)中調(diào)用 SDRAM初始化函數(shù)和測試函數(shù),輸出測試信息:

????最終顯示,SDRAM配置成功

? ? ????SDRAM配置成功之后,在定義變量時,可以直接指定變量存儲到外部SDRAM 空間。以上的測試方法是使用指針訪問SDRAM空間,未免過于麻煩。在實際使用中,可以直接定義一個非常大的數(shù)組,將整個數(shù)組都存儲到SDRAM上,然后動態(tài)的使用SDRAM內(nèi)存空間。要注意使用這種方法定義變量時,必須在函數(shù)外把它定義成全局變量,才可以存儲到指定地址上。
????????如果使用KEIL開發(fā)環(huán)境,操作就比較簡單,在定義變量時使用如下方式:
????????如果使用STM32CubeIDE,則稍微麻煩點,需要在STM32H7431ITX_FLASH.ld文件中做如下修改,添加部分代碼:

????然后將變量定義到SDRAM中,使用:
????編譯之后,可以在STM32CubeIDE右側(cè)Memory Regions看一下編譯信息

????最后可以看一下,Memory Details,會有定義的變量出現(xiàn)

????以上,SDRAM就配置成功了
????完整的工程代碼開源,在https://www.bilibili.com/read/readlist/rl758628?spm_id_from=333.999.0.0 視頻下方簡介可以看到