STM32學習之ILI9341控制顯示屏輸出(一)

本實驗工具:

STM32F407ZGT6                    液晶顯示屏2.8寸                 顯示屏控制芯片:ILI9341

本液晶顯示屏內部包含一個ILI9341液晶控制芯片。其內部結構如下所示:

其中最核心的部分爲GRAM,可以稱爲顯存,每一個存儲單元都對應着液晶面板的一個像素點。下圖右側的模塊共同作用吧GRAM存儲單元的數據轉化爲液晶面板的控制信號,使像素點呈現特定的顏色,而像素點組合起來就成爲一幅完整的圖像。框圖的左上角爲芯片的主要控制信號和配置引腳,根據其不同的狀態設置可以使芯片工作在不同的模式,如每個像素點的位數,6位、18位、16位等。本實驗採用STM32的FSMC模擬8080時序與液晶屏通訊。

 

FSMC的地址映射:

FSMC連接好外部存儲器並初始化後,就可以直接通過訪問地址讀寫數據,這種地址訪問與I2CEEPROM、SPI Flash的不一樣,使用FSMC外接存儲器時,其存儲單元是映射到STM32的內部尋址空間;在程序裏,第一一個指向這些地址的指針,然後就可以通過指針直接修改該存儲單元的內容,FSMC外設會自動完成數據訪問過程,讀寫命令之類的操作不需要程序控制。

NOR Flash存儲器時序結構體

控制FSMC使用NOR Flash存儲器時主要是配置時序寄存器以及控制寄存器,利用ST標準庫的時序結構體以及初始化結構體。

NOR Flash時序結構體FSMC_NORSRAMTimingInitTypeDef結構體



typedef struct
{
uint32_t FSMC_AddressSetupTime; //用於定義地址建立時間,範圍:0~0xF個週期,一個週期一般
                                //爲1/HSCLK。
uint32_t FSMC_AddressHoldTime;  //用於設置地址保持時間:0~0xF個週期。
uint32_t FSMC_DataSetupTime;    //地址建立時間,0~0xF個週期,
uint32_t FSMC_BusTurnAroundDuration; //總線轉換時間,0~0xF個週期;
uint32_t FSMC_CLKDivision;      //時鐘分頻因子,0~0xF,若控制異步存儲器,本參數無效;
uint32_t FSMC_DataLatency;      //數據延遲時間,若控制異步存儲器,本參數無效;
uint32_t FSMC_AccessMode;       //設置訪問模式;

}FSMC_NORSRAMTimingInitTypeDef; 

FSMC初始化結構體:用於控制NOR Flash相關的結構體,

NORSRAMInitTypeDef結構體

typedef struct
{
 uint32_t FSMC_Bank;   //設置需要控制的區域;
uint32_t  FSMC_DataAddressMux; //設置地址總線與數據總線是否複用;
uint32_t FSMC_MemoryType;  //設置存儲器類型;
uint32_t FSMC_MemoryDataWidth; //設置存儲器的寬度;
uint32_t FSMC_BurstAccessMode; //設置是否支持突發模式,只支持同步類型的存儲器;
uint32_t FSMC_AsynchronousWait; //設置是否使能在同步傳輸中時的等待信號;
uint32_t FSMC_WaitSignalPolarity; //設置等待信號的極性;
uint32_t FSMC_WrapMode;         //設置是否支持對其的突發模式;
uint32_t FSMC_WaitSignalActive; //設置等待信號在等待前有效還是等待期間有效;
uint32_t FSMC_WriteOperation;  //設置是否寫使能;
uint32_t FSMC_WaitSignal;     //設置是否使能等待狀態插入;
uint32_t FSMC_ExtendedMode;  //設置是否使能擴展模式;
uint32_t FSMC_WriteBurst;   //設置是否使能突發模式;
//當不設置擴展模式時,本參數用於設置讀寫時序,否則用於配置讀時序;
FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct;
//當使用擴展模式時,本參數用於配置寫時序;
FSMC_NORSRAMTimingInitTypeDef* FSMC_WriteTimingStruct;
}FSMC_NORSRAMInitTypeDef

以上是使用庫函數需要配置的結構體,具體程序代碼請見下一章節;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章