STM32F103系列是沒有內(nèi)置LCD控制器接口的,如果要驅(qū)動LCD,需要一顆LCD圖形驅(qū)動IC。STM32和LCD驅(qū)動IC的接口在STM32端是FSMC,F(xiàn)SMC接口提供各種存儲器驅(qū)動信號也提供了驅(qū)動LCD驅(qū)動IC的各種信號。
一、FSMC簡介
FSMC概覽
如下圖可以看到FSMC支持的存儲器類型及提供的各種讀寫控制信號。
圖1
2.FSMC 框圖
圖2
3.FSMC 內(nèi)存地址空間分配
圖3
二、LCD 接口
1.8080和6800接口
這兩種接口類型是典型的LCD并行接口。接口信號分為:數(shù)據(jù)信號和控制信號。
數(shù)據(jù)信號支持8,9,16,18,24位等。
控制信號用來區(qū)分讀、寫及區(qū)分是向LCD尋址命令寄存器還是寫LCD RAM數(shù)據(jù)。
控制信號定義如下:
圖4
8080接口:
6800接口:
2.FSMC的LCD接口信號
圖5
通過圖5,可以看到FSMC提供了LCD驅(qū)動所需的全部信號。
片選有專門的硬件信號,也可以使用地址信號Ax,即空閑的地址信號任選一根使用。而LCD的RS信號也可以連接到一根地址線。
3.FSMC 和LCD 連接框圖
8080類型接口
6800類型接口
4.驅(qū)動程序
以STM32F103VCT6為例,關(guān)于103VCT6的信息如下:
只能使用BANK1且Ax推薦使用16-23,STM32原理圖接口連線如下:
如上圖,RS接A16,CS接A17。
如圖3,BANK1的基地址是0x60000000,
關(guān)于LCD驅(qū)動IC的訪問模式有4種:
所有對LCD圖形界面的操作都是基于這四個函數(shù),所以實現(xiàn)4個函數(shù)很重要。
#define LCD_COMM_ADD ((vu16 )0X60020000)
#define LCD_DATA_ADD *((vu16 *)0X60000000)
#define WriteCommand(cmd) {LCD_COMM_ADD = cmd;}
#define WriteData(data) {LCD_DATA_ADD = data;}
inline u8 ReadData(void)
{
return LCD_DATA_ADD;
}
inline u8 ReadCOMM(void)
{
return LCD_COMM_ADD;
}
以上代碼中RS和標(biāo)準(zhǔn)接口定義是反的,是因為LCD驅(qū)動IC對RS的定義和標(biāo)準(zhǔn)就是反的。LCD驅(qū)動IC的SPEC:
另一個問題,硬件使用A16連接RS,為什么代碼里體現(xiàn)是的0X60020000(A17)?為什么左移一位,原因在STM32中文手冊有說明:
-
控制器
+關(guān)注
關(guān)注
114文章
17113瀏覽量
184355 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
365044 -
LCD屏
+關(guān)注
關(guān)注
0文章
126瀏覽量
16053 -
驅(qū)動IC
+關(guān)注
關(guān)注
9文章
316瀏覽量
34666 -
STM32F103
+關(guān)注
關(guān)注
33文章
483瀏覽量
65546
發(fā)布評論請先 登錄
Linux中基于EP7312的LCD驅(qū)動程序設(shè)計
Windows CE 5.0下LCD驅(qū)動程序移植
USB接口驅(qū)動程序開發(fā)

Windows CENET環(huán)境下的流接口驅(qū)動程序開發(fā)
如何使用STM32的FSMC接口驅(qū)動LCD屏
Linux設(shè)備驅(qū)動程序的平臺驅(qū)動程序和字符驅(qū)動程序介紹
DS1302的驅(qū)動程序和LCD1602驅(qū)動顯示程序免費下載

STM32的ADC驅(qū)動程序

評論