標(biāo)題: 求大神幫忙點(diǎn)亮TFT彩屏 [打印本頁(yè)]

作者: xiaoyuxinke    時(shí)間: 2024-12-28 10:57
標(biāo)題: 求大神幫忙點(diǎn)亮TFT彩屏
近日朋友送了個(gè)TFT3.5寸的彩屏,用的是ILI9488的驅(qū)動(dòng)這個(gè)是屏的正面:

這個(gè)是屏的反面:

這個(gè)屏的例程在KELL-C51下編程通過(guò),可以顯示,
但是我現(xiàn)在想用STC32G12K128點(diǎn)亮它,可是這個(gè)屏的例程在KELL-C251下很不友好,很多結(jié)構(gòu)體錯(cuò)誤
由于本人剛學(xué)C,對(duì)于這種錯(cuò)誤搞不定,一下出來(lái)幾百個(gè)錯(cuò)誤,
在此請(qǐng)教大神,幫我移植一下這個(gè)程序,可以讓它在STC32-12K128下完美運(yùn)行,或者說(shuō)可以移植到KELL-C251下編譯
知道各位大神都很忙,在此說(shuō)聲謝謝了!

這個(gè)是它原來(lái)的例程:
ILI9488+CTC3.5_4SPI_OK.7z (90.06 KB, 下載次數(shù): 0)




作者: angmall    時(shí)間: 2024-12-28 10:57
SPI驅(qū)動(dòng)TFT屏ILI9488的程序@STC32
===STC32G12K128, STC8H8K64U, 開源代碼源程序見附件




/=========================================電源接線================================================//
//5V接DC 5V電源
//GND接地
//=======================================液晶屏數(shù)據(jù)線接線==========================================//
//本模塊默認(rèn)數(shù)據(jù)總線類型為SPI
//液晶屏模塊            單片機(jī)
// SDI(MOSI)     接       P23        //SPI寫信號(hào)
// SDO(MISO)     接       P         //SPI讀信號(hào),如果不需要讀功能,此管腳可不接
//=======================================液晶屏控制線接線==========================================//
//液晶屏模塊            單片機(jī)
//  CS           接       P34       //片選控制信號(hào)
//  RESET        接       P43       //復(fù)位信號(hào)
//  DC           接       P45       //數(shù)據(jù)/命令選擇控制信號(hào)
//  SCK          接       P25       //SPI時(shí)鐘信號(hào)
//  LED          接       P42       //背光控制信號(hào),如果使用STC89C52RC單片機(jī)或者不需要控制,接3.3V
//=========================================觸摸屏接線=========================================//
//不使用觸摸或者模塊本身不帶觸摸,則可不連接

//觸摸屏使用的數(shù)據(jù)總線類型為SPI
//觸摸屏模塊            單片機(jī)
//  T_CLK        接       P25       //觸摸屏SPI時(shí)鐘信號(hào)
//  T_CS         接       P52       //觸摸屏片選控制信號(hào)
//  T_DIN        接       P23       //觸摸屏SPI寫信號(hào)
//  T_DO         接       P24       //觸摸屏SPI讀信號(hào)
//  T_IRQ        接       P36       //觸摸屏響應(yīng)檢查信號(hào),如單片機(jī)無(wú)P4組,請(qǐng)自行更改其他可用IO并修改代碼定義
//**************************************************************************************************/





STC32G_ILI9488.zip

113.3 KB, 下載次數(shù): 0


作者: xiaoyuxinke    時(shí)間: 2024-12-29 14:13
angmall 發(fā)表于 2024-12-28 20:52
SPI驅(qū)動(dòng)TFT屏ILI9488的程序@STC32
===STC32G12K128, STC8H8K64U, 開源代碼源程序見附件

這個(gè)程序引腳定義sbit在哪里啊,沒(méi)找到

作者: angmall    時(shí)間: 2024-12-29 21:41
xiaoyuxinke 發(fā)表于 2024-12-29 14:13
這個(gè)程序引腳定義sbit在哪里啊,沒(méi)找到

就是在那個(gè)LCD.h里面啊。


這個(gè)是用硬件SPI,不可以隨便換。


作者: xiaoyuxinke    時(shí)間: 2024-12-30 10:06
angmall 發(fā)表于 2024-12-29 21:41
就是在那個(gè)LCD.h里面啊。

我只是用了S2SPI_S的11,也就是第四組P7.4-P7.5-P7.6-P7.7
P_SW3 = 0x30;
但是無(wú)法顯示,只是白屏
不知道什么原因,頭痛……。
作者: xiaoyuxinke    時(shí)間: 2024-12-30 10:19
angmall 發(fā)表于 2024-12-29 21:41
就是在那個(gè)LCD.h里面啊。


我用的這個(gè),但是無(wú)法顯示,一直白屏

作者: angmall    時(shí)間: 2024-12-30 12:36
xiaoyuxinke 發(fā)表于 2024-12-30 10:06
我只是用了S2SPI_S的11,也就是第四組P7.4-P7.5-P7.6-P7.7
P_SW3 = 0x30;
但是無(wú)法顯示,只是白屏


右邊這一排是你的TFT彩屏 初始化參數(shù)。他和我的彩屏初始化參數(shù)不一樣,你可以換一下。


void LCD_Init(void)
{
        SPI_init(); //初始化硬件SPI
        LCD_ResetFun(); //初始化之前復(fù)位
//************* ILI9488初始化**********//        //ILI9488+CTC3.5
        LCD_WR_REG(0XF7);                                        WriteComm(0XF7);
        LCD_WR_DATA(0xA9);                                        WriteData(0xA9);
        LCD_WR_DATA(0x51);                                        WriteData(0x51);
        LCD_WR_DATA(0x2C);                                        WriteData(0x2C);
        LCD_WR_DATA(0x82);                                        WriteData(0x82);

        LCD_WR_REG(0xC0);                                        WriteComm(0xC0);
        LCD_WR_DATA(0x11);                  WriteData(0x10);
        LCD_WR_DATA(0x09);                  WriteData(0x10);

        LCD_WR_REG(0xC1);                                        WriteComm(0xC1);
        LCD_WR_DATA(0x41);                  WriteData(0x41);

        LCD_WR_REG(0XC5);                                        WriteComm(0xC5);
        LCD_WR_DATA(0x00);                  WriteData(0x00);
        LCD_WR_DATA(0x0A);                  WriteData(0x22);
        LCD_WR_DATA(0x80);                  WriteData(0x80);

        LCD_WR_REG(0xB1);                                        WriteComm(0xB1);
        LCD_WR_DATA(0xB0);                  WriteData(0xB0);
        LCD_WR_DATA(0x11);                  WriteData(0x11);

        LCD_WR_REG(0xB4);                                        WriteComm(0xB4);
        LCD_WR_DATA(0x02);                  WriteData(0x02);

        LCD_WR_REG(0xB6);                                        WriteComm(0xB6);
        LCD_WR_DATA(0x02);                  WriteData(0x02);
        LCD_WR_DATA(0x42);                  WriteData(0x02);

        LCD_WR_REG(0xB7);                                        WriteComm(0xB7);
        LCD_WR_DATA(0xc6);                  WriteData(0xC6);

        LCD_WR_REG(0xBE);                                        //WriteComm(0XBE);
        LCD_WR_DATA(0x00);                  //WriteData(0x00);
        LCD_WR_DATA(0x04);                  //WriteData(0x04);

        LCD_WR_REG(0xE9);                                        WriteComm(0xE9);
        LCD_WR_DATA(0x00);                  WriteData(0x00);

        LCD_WR_REG(0x36);                                                        WriteComm(0x36);
        LCD_WR_DATA((1<<3)|(0<<7)|(1<<6)|(1<<5));   WriteData(0x48);

        LCD_WR_REG(0x3A);                                WriteComm(0x3A);       
        LCD_WR_DATA(0x66);              WriteData(0x66);

        LCD_WR_REG(0xE0);                                WriteComm(0xE0);
        LCD_WR_DATA(0x00);              WriteData(0x00);
        LCD_WR_DATA(0x07);              WriteData(0x07);
        LCD_WR_DATA(0x10);              WriteData(0x0f);
        LCD_WR_DATA(0x09);              WriteData(0x0D);
        LCD_WR_DATA(0x17);              WriteData(0x1B);
        LCD_WR_DATA(0x0B);              WriteData(0x0A);
        LCD_WR_DATA(0x41);              WriteData(0x3c);
        LCD_WR_DATA(0x89);              WriteData(0x78);
        LCD_WR_DATA(0x4B);              WriteData(0x4A);
        LCD_WR_DATA(0x0A);              WriteData(0x07);
        LCD_WR_DATA(0x0C);              WriteData(0x0E);
        LCD_WR_DATA(0x0E);              WriteData(0x09);
        LCD_WR_DATA(0x18);              WriteData(0x1B);
        LCD_WR_DATA(0x1B);              WriteData(0x1e);
        LCD_WR_DATA(0x0F);              WriteData(0x0f);

        LCD_WR_REG(0XE1);                                WriteComm(0xE1);               
        LCD_WR_DATA(0x00);              WriteData(0x00);
        LCD_WR_DATA(0x17);              WriteData(0x22);
        LCD_WR_DATA(0x1A);              WriteData(0x24);
        LCD_WR_DATA(0x04);              WriteData(0x06);
        LCD_WR_DATA(0x0E);              WriteData(0x12);
        LCD_WR_DATA(0x06);              WriteData(0x07);
        LCD_WR_DATA(0x2F);              WriteData(0x36);
        LCD_WR_DATA(0x45);              WriteData(0x47);
        LCD_WR_DATA(0x43);              WriteData(0x47);
        LCD_WR_DATA(0x02);              WriteData(0x06);
        LCD_WR_DATA(0x0A);              WriteData(0x0a);
        LCD_WR_DATA(0x09);              WriteData(0x07);
        LCD_WR_DATA(0x32);              WriteData(0x30);
        LCD_WR_DATA(0x36);              WriteData(0x37);
        LCD_WR_DATA(0x0F);              WriteData(0x0f);

        LCD_WR_REG(0x11);  //Sleep OUT (11h)
        delay_ms(120);
        LCD_WR_REG(0x29);  //Display ON (29h)        

        //設(shè)置LCD屬性參數(shù)
        LCD_direction(USE_HORIZONTAL);//設(shè)置LCD顯示方向
        LCD_BL=1;//點(diǎn)亮背光         
}




作者: xiaoyuxinke    時(shí)間: 2024-12-30 20:03
angmall 發(fā)表于 2024-12-30 12:36
右邊這一排是你的TFT彩屏 初始化參數(shù)。他和我的彩屏初始化參數(shù)不一樣,你可以換一下。

算了,不搞了,我還是個(gè)菜鳥,對(duì)C語(yǔ)言一知半解,僅限于會(huì)弄個(gè)流水燈





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1