<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32驅動(dòng)TFT顯示屏ILI9325

STM32驅動(dòng)TFT顯示屏ILI9325

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò ) 收藏
2.4寸TFT240370PQ顯示屏,驅動(dòng)IC為ILI9325。該屏屏幕電源為2.8~3.3V,背光電源最高3.2V(在3.3V電源下串20Ω電阻或5V下串200Ω電阻),兼容8/16位數據接口(可選)。數據口電平理論上不能超3.3V,由于TFT內部有電壓鉗位,樣品測試時(shí)可使用5V單片機。

  寫(xiě)下幾點(diǎn)注意事項:

1、不要急著(zhù)寫(xiě)屏,首先讀ID,確認驅動(dòng)IC是否ILI9325。ILI9320、ILI9325、ILI9328等驅動(dòng)IC的初始化參數會(huì )稍有不同。讀ID還可以確認數據接口選擇的正確性。如果是16位數據接口,ID讀到0x9325;如果是8位數據接口,ID讀兩次可得0x93,0x25。

2、雖然TFT屏的初始化參數比較多,但參數要求并不很?chē)栏?,不?huì )因為一點(diǎn)點(diǎn)的差錯而點(diǎn)不亮(當然,不寫(xiě)display on的命令肯定不會(huì )亮),所以,在點(diǎn)不亮時(shí)不要首先懷疑Init()的參數設置,應該先檢查連線(xiàn)的正確性,I/O口的設置。

3、要注意給RST的復位有足夠的時(shí)間,寫(xiě)命令和寫(xiě)數據的子函數里RS的選擇。

4、賣(mài)屏的商家通常提供的是STC的例程,若STM32驅不起來(lái),可先用STC把屏點(diǎn)亮,以確認該屏正常,再仔細尋找問(wèn)題所在。

  以下是例程,該例程使用I/O口驅動(dòng),雖然選擇16位數據接口,但刷屏速度有點(diǎn)慢,建議使用LCD總線(xiàn)。背光使用PWM調節對比度(該段程序省略):


#defineP_TFT_RS   GPIOB
#define TFT_RS    GPIO_Pin_0
#defineP_TFT_WR  GPIOB
#define TFT_WR    GPIO_Pin_1
#defineP_TFT_RD GPIOB
#define TFT_RD GPIO_Pin_2
#defineP_TFT_CS GPIOB
#define TFT_CS GPIO_Pin_10
#defineP_TFT_RSTGPIOB
#define TFT_RST GPIO_Pin_11
#defineP_TFT_BK GPIOB
#define TFT_BKGPIO_Pin_7 // TIM4_CH2 PWM


#define Set_CS GPIO_SetBits(P_TFT_CS,TFT_CS);
#define Clr_CS GPIO_ResetBits(P_TFT_CS,TFT_CS);

#define Set_RSGPIO_SetBits(P_TFT_RS,TFT_RS);
#define Clr_RS GPIO_ResetBits(P_TFT_RS,TFT_RS);

#define Set_WR GPIO_SetBits(P_TFT_WR,TFT_WR);
#define Clr_WR GPIO_ResetBits(P_TFT_WR,TFT_WR);

#define Set_RD GPIO_SetBits(P_TFT_RD,TFT_RD);
#define Clr_RD GPIO_ResetBits(P_TFT_RD,TFT_RD);

#define Set_RST GPIO_SetBits(P_TFT_RST,TFT_RST);
#define Clr_RST GPIO_ResetBits(P_TFT_RST,TFT_RST);

void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;// for PWM
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);

}


void DataToIO(u16 val)
{
u16 dat;
dat = GPIO_ReadOutputData(GPIOC);// DBL
dat = (dat&0xFF00) | (val&0xFF);
GPIO_Write(GPIOC, dat);

dat = GPIO_ReadOutputData(GPIOA);// DBH
dat = (dat&0xFF00) | ((val>>8)&0xFF);
GPIO_Write(GPIOA, dat);
}


void TFT_Write_com(u16 dat) //發(fā)送命令
{
Clr_RS;
Set_RD;
DataToIO(dat);
Clr_WR;
Set_WR;
}


void TFT_Write_dat(u16 dat)// 發(fā)送數據
{
Set_RS;
Set_RD;
DataToIO(dat);
Clr_WR;
Set_WR;
}


u16 TFT_ReadReg(u16 reg)
{
u16 datL, datH;
GPIO_InitTypeDef GPIO_InitStructure;

Clr_CS;
TFT_Write_com(reg);

GPIO_InitStructure.GPIO_Pin = 0xFF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ;// 上拉輸入
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIOA->ODR = 0xFFFF;
GPIOC->ODR = 0xFFFF;

Set_RS;
Set_WR;
Clr_RD;
datH = GPIOA->IDR;
datL = GPIOC->IDR;
Set_RD;
Set_CS;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = 0xFF;
GPIO_Init(GPIOA, &GPIO_InitStructure);
DataToIO(0xFFFF);

datH = ((datH<<8)&0xFF00) | (datL&0x00FF);

return(datH);
}


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>