|
angmall 發表于 2024-12-30 12:36 算了,不搞了,我還是個菜鳥,對C語言一知半解,僅限于會弄個流水燈 |
xiaoyuxinke 發表于 2024-12-30 10:06 右邊這一排是你的TFT彩屏 初始化參數。他和我的彩屏初始化參數不一樣,你可以換一下。 void LCD_Init(void) { SPI_init(); //初始化硬件SPI LCD_ResetFun(); //初始化之前復位 //************* 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) //設置LCD屬性參數 LCD_direction(USE_HORIZONTAL);//設置LCD顯示方向 LCD_BL=1;//點亮背光 } |
angmall 發表于 2024-12-29 21:41 我只是用了S2SPI_S的11,也就是第四組P7.4-P7.5-P7.6-P7.7 P_SW3 = 0x30; 但是無法顯示,只是白屏 不知道什么原因,頭痛……。 |
xiaoyuxinke 發表于 2024-12-29 14:13 就是在那個LCD.h里面啊。
這個是用硬件SPI,不可以隨便換。 |
angmall 發表于 2024-12-28 20:52 這個程序引腳定義sbit在哪里啊,沒找到 |
|
SPI驅動TFT屏ILI9488的程序@STC32 ===STC32G12K128, STC8H8K64U, 開源代碼源程序見附件
/=========================================電源接線================================================// //5V接DC 5V電源 //GND接地 //=======================================液晶屏數據線接線==========================================// //本模塊默認數據總線類型為SPI //液晶屏模塊 單片機 // SDI(MOSI) 接 P23 //SPI寫信號 // SDO(MISO) 接 P //SPI讀信號,如果不需要讀功能,此管腳可不接 //=======================================液晶屏控制線接線==========================================// //液晶屏模塊 單片機 // CS 接 P34 //片選控制信號 // RESET 接 P43 //復位信號 // DC 接 P45 //數據/命令選擇控制信號 // SCK 接 P25 //SPI時鐘信號 // LED 接 P42 //背光控制信號,如果使用STC89C52RC單片機或者不需要控制,接3.3V //=========================================觸摸屏接線=========================================// //不使用觸摸或者模塊本身不帶觸摸,則可不連接 //觸摸屏使用的數據總線類型為SPI //觸摸屏模塊 單片機 // T_CLK 接 P25 //觸摸屏SPI時鐘信號 // T_CS 接 P52 //觸摸屏片選控制信號 // T_DIN 接 P23 //觸摸屏SPI寫信號 // T_DO 接 P24 //觸摸屏SPI讀信號 // T_IRQ 接 P36 //觸摸屏響應檢查信號,如單片機無P4組,請自行更改其他可用IO并修改代碼定義 //**************************************************************************************************/ |
113.3 KB, 下載次數: 0