為了對(duì)得起AT32F403A那豐富的存儲(chǔ)資源,這次為它配上一個(gè)2.2'彩色TFT屏,該顯示屏采用SPI接口,故將I2C接口和SPI接口聯(lián)合起來(lái)驅(qū)動(dòng)它。
1.jpg (12.13 KB, 下載次數(shù): 65)
下載附件
2020-10-14 20:51 上傳
圖1 接口資源 相關(guān)引腳輸出高低電平的引腳定義為: - #define LCD_CS_High() GPIO_SetBits(GPIOB, GPIO_Pins_13)
- #define LCD_CS_Low() GPIO_ResetBits(GPIOB, GPIO_Pins_13) //CS
- #define LCD_REST_High() GPIO_SetBits(GPIOB, GPIO_Pins_11)
- #define LCD_REST_Low() GPIO_ResetBits(GPIOB, GPIO_Pins_11) //RES
- #define LCD_DC_High() GPIO_SetBits(GPIOB, GPIO_Pins_12)
- #define LCD_DC_Low() GPIO_ResetBits(GPIOB, GPIO_Pins_12) //DC
- #define LCD_SDI_High() GPIO_SetBits(GPIOB, GPIO_Pins_9)
- #define LCD_SDI_Low() GPIO_ResetBits(GPIOB, GPIO_Pins_9)//SDI
- #define LCD_SCK_High() GPIO_SetBits(GPIOB, GPIO_Pins_8)
- #define LCD_SCK_Low() GPIO_ResetBits(GPIOB, GPIO_Pins_8)//SCK
- #define LCD_LED_High() GPIO_SetBits(GPIOB, GPIO_Pins_14)
- #define LCD_LED_Low() GPIO_ResetBits(GPIOB, GPIO_Pins_14) //BLK
復(fù)制代碼 由于與前面介紹的彩色OLED屏所用的引腳位置一致,一個(gè)奇異的現(xiàn)象出現(xiàn)了,等待程序下載的顯示屏竟顯示內(nèi)容,見圖2~圖4所示。 OLED屏的程序竟能驅(qū)動(dòng)TFT屏,而且圖像完整,只不過(guò)顯示的內(nèi)容是鏡像的,且顏色互補(bǔ)。 是不是很神奇!
2.jpg (34.54 KB, 下載次數(shù): 59)
下載附件
2020-10-14 20:51 上傳
3.jpg (28.75 KB, 下載次數(shù): 59)
下載附件
2020-10-14 20:51 上傳
圖5 原OLED屏顯示效果 在更新程序后,使用紅色進(jìn)行清屏后的效果如圖6所示。
4.jpg (13.71 KB, 下載次數(shù): 51)
下載附件
2020-10-14 20:51 上傳
圖6 紅色清屏效果 該2.2寸TFT彩屏的初始化函數(shù)為: - void tft_Init(void)
- {
- LCD_REST_Low(); //Lcd_Reset()
- Delay_ms(20); //delay_ms(20);
- LCD_REST_High();
- Delay_ms(20);
- LCD_CS_Low();
- LCD_WR_REG(0xCB); //Lcd_WriteIndex(0xCB);
- LCD_WR_DATA8(0x39);//Lcd_WriteData(0x39);
- LCD_WR_DATA8(0x2C);
- LCD_WR_DATA8(0x00);
- LCD_WR_DATA8(0x34);
- LCD_WR_DATA8(0x02);
- LCD_WR_REG(0xCF);
- LCD_WR_DATA8(0x00);
- LCD_WR_DATA8(0XC1);
- LCD_WR_DATA8(0X30);
- LCD_WR_REG(0xE8);
- LCD_WR_DATA8(0x85);
- LCD_WR_DATA8(0x00);
- LCD_WR_DATA8(0x78);
- LCD_WR_REG(0xEA);
- LCD_WR_DATA8(0x00);
- LCD_WR_DATA8(0x00);
- LCD_WR_REG(0xED);
- LCD_WR_DATA8(0x64);
- LCD_WR_DATA8(0x03);
- LCD_WR_DATA8(0X12);
- LCD_WR_DATA8(0X81);
- LCD_WR_REG(0xF7);
- LCD_WR_DATA8(0x20);
- LCD_WR_REG(0xC0); //Power control
- LCD_WR_DATA8(0x23); //VRH[5:0]
- LCD_WR_REG(0xC1); //Power control
- LCD_WR_DATA8(0x10); //SAP[2:0];BT[3:0]
- LCD_WR_REG(0xC5); //VCM control
- LCD_WR_DATA8(0x3e); //?????
- LCD_WR_DATA8(0x28);
- LCD_WR_REG(0xC7); //VCM control2
- LCD_WR_DATA8(0x86);
- LCD_WR_REG(0x36); // Memory Access Control
- LCD_WR_DATA8(0x48);
- LCD_WR_REG(0x3A);
- LCD_WR_DATA8(0x55);
- LCD_WR_REG(0xB1);
- LCD_WR_DATA8(0x00);
- LCD_WR_DATA8(0x18);
- LCD_WR_REG(0xB6); // Display Function Control
- LCD_WR_DATA8(0x08);
- LCD_WR_DATA8(0x82);
- LCD_WR_DATA8(0x27);
- LCD_WR_REG(0xF2); // 3Gamma Function Disable
- LCD_WR_DATA8(0x00);
- LCD_WR_REG(0x26); //Gamma curve selected
- LCD_WR_DATA8(0x01);
- LCD_WR_REG(0xE0); //Set Gamma
- LCD_WR_DATA8(0x0F);
- LCD_WR_DATA8(0x31);
- LCD_WR_DATA8(0x2B);
- LCD_WR_DATA8(0x0C);
- LCD_WR_DATA8(0x0E);
- LCD_WR_DATA8(0x08);
- LCD_WR_DATA8(0x4E);
- LCD_WR_DATA8(0xF1);
- LCD_WR_DATA8(0x37);
- LCD_WR_DATA8(0x07);
- LCD_WR_DATA8(0x10);
- LCD_WR_DATA8(0x03);
- LCD_WR_DATA8(0x0E);
- LCD_WR_DATA8(0x09);
- LCD_WR_DATA8(0x00);
- LCD_WR_REG(0XE1); //Set Gamma
- LCD_WR_DATA8(0x00);
- LCD_WR_DATA8(0x0E);
- LCD_WR_DATA8(0x14);
- LCD_WR_DATA8(0x03);
- LCD_WR_DATA8(0x11);
- LCD_WR_DATA8(0x07);
- LCD_WR_DATA8(0x31);
- LCD_WR_DATA8(0xC1);
- LCD_WR_DATA8(0x48);
- LCD_WR_DATA8(0x08);
- LCD_WR_DATA8(0x0F);
- LCD_WR_DATA8(0x0C);
- LCD_WR_DATA8(0x31);
- LCD_WR_DATA8(0x36);
- LCD_WR_DATA8(0x0F);
- LCD_WR_REG(0x11); //Exit Sleep
- Delay_ms(120);
- LCD_WR_REG(0x29); //Display on
- LCD_WR_REG(0x2c);
- }
復(fù)制代碼
它的色彩清屏函數(shù)為: - void LCD_Clear(unsigned int Color)
- {
- char VH,VL; // LCD_W= 240 LCD_H =320
- unsigned int i,j;
- VH=Color>>8;
- VL=Color;
- Address_set(0,0,LCD_W-1,LCD_H-1);
- for(i=0;i<LCD_W;i++)
- {
- for (j=0;j<LCD_H;j++)
- {
- LCD_WR_DATA8(VH);
- LCD_WR_DATA8(VL);
- }
- }
復(fù)制代碼 在制備了圖標(biāo)文件后,所制作的界面效果如圖7所示。
5.jpg (31.29 KB, 下載次數(shù): 65)
下載附件
2020-10-14 20:51 上傳
圖7 圖標(biāo)化操作界面 在利用板上按鍵的情況下,可控制功能的選擇處理。按鍵的原理圖見圖8所示, 讀取引腳的語(yǔ)句為: GPIO_ReadInputDataBit(GPIOA, GPIO_Pins_0); GPIO_ReadInputDataBit(GPIOC,GPIO_Pins_13);
6.jpg (6.92 KB, 下載次數(shù): 59)
下載附件
2020-10-14 20:51 上傳
圖8 按鍵原理圖
|