本帖最后由 jinglixixi 于 2018-11-24 20:31 编辑
前面我们介绍了SPI接口OLED屏的使用方法,但受屏幕尺寸的限制其显示信息十分有限,本次说一下SPI接口TFT屏的显示,其显示效果如图1所示。 图1 图片显示效果
由于目前在LPC11U68上尚未实现基于SD卡的FATFS文件系统,因此只能通过数组的方式来存放图片的数据,所用的数据提取工具为Image2Lcd v2.9,其使用界面如图2所示。 图2 图片数据提取
为便于连接,可直接将TFT屏插入Arduino接口来使用,它与MCU的连接关系为: VREF--VCC GND-- GND CS --P1.29 REST --P0.8 DC --P0.9 SDI --P0.2 SCK --P2.3 LED --P1.28
引脚输出高低电平的语句为: #define LCD_CS_High() Chip_GPIO_SetPinState(LPC_GPIO, 1, 29, 1); #define LCD_CS_Low() Chip_GPIO_SetPinState(LPC_GPIO, 1, 29, 0); #define LCD_REST_High() Chip_GPIO_SetPinState(LPC_GPIO, 0,8, 1); #define LCD_REST_Low() Chip_GPIO_SetPinState(LPC_GPIO, 0,8, 0); #define LCD_DC_High() Chip_GPIO_SetPinState(LPC_GPIO, 0,9, 1); #define LCD_DC_Low() Chip_GPIO_SetPinState(LPC_GPIO, 0, 9, 0); #define LCD_SDI_High() Chip_GPIO_SetPinState(LPC_GPIO, 0, 2, 1); #define LCD_SDI_Low() Chip_GPIO_SetPinState(LPC_GPIO,0, 2, 0); #define LCD_SCK_High() Chip_GPIO_SetPinState(LPC_GPIO, 2, 3, 1); #define LCD_SCK_Low() Chip_GPIO_SetPinState(LPC_GPIO, 2, 3, 0); #define LCD_LED_High() Chip_GPIO_SetPinState(LPC_GPIO, 1, 28,1); #define LCD_LED_Low() Chip_GPIO_SetPinState(LPC_GPIO, 1, 28, 0);
将引脚配置为输出端的函数为: - void LCD_GPIO_Cogfig(void)
- {
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 1, 29);
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 8);
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 9);
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 2);
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 2, 3);
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 1, 28);
- }
复制代码
图片显示函数为: - void showimage(unsigned int x,unsigned int y)
- {
- unsigned int i,j,k;
- unsigned int da;
- k=0;
- for(i=0;i<320;i++)
- {
- LCD_SetCursor(x,y+i);
- LCD_WriteRAM_Prepare();
- for(j=0;j<240;j++)
- {
- da=gImage_SZ[k*2];
- da<<=8;
- da|=gImage_SZ[k*2+1];
- LCD_WR_DATA(da);
- k++;
- }
- }
- }
复制代码
|