2.4寸TFT情况如下(此屏幕不带触摸,也无触摸驱动程序,但是有底层)

接线情况如下

主要程序如下:

main.c

#include "delay.h"
#include "sys.h"
#include "lcd.h"
#include "gui.h"
#include "test.h"int main(void)
{   SystemInit();//³õʼ»¯RCC ÉèÖÃϵͳÖ÷ƵΪ72MHZdelay_init(72);      //ÑÓʱ³õʼ»¯LCD_Init();       //Òº¾§ÆÁ³õʼ»¯//Ñ­»·²âÊÔwhile(1){main_test();        //²âÊÔÖ÷½çÃæTest_Color();       //¼òµ¥Ë¢ÆÁÌî³ä²âÊÔTest_FillRec();       //GUI¾ØÐλæͼ²âÊÔTest_Circle();         //GUI»­Ô²²âÊÔTest_Triangle();    //GUIÈý½ÇÐλæͼ²âÊÔEnglish_Font_test();//Ó¢ÎÄ×ÖÌåʾÀý²âÊÔChinese_Font_test();//ÖÐÎÄ×ÖÌåʾÀý²âÊÔPic_test();         //ͼƬÏÔʾʾÀý²âÊÔRotate_Test();   //ÐýתÏÔʾ²âÊÔ}
}

lcd.c


#include "lcd.h"
#include "stdlib.h"
#include "delay.h"
#include "SPI.h"//¹ÜÀíLCDÖØÒª²ÎÊý
//ĬÈÏΪÊúÆÁ
_lcd_dev lcddev;//»­±ÊÑÕÉ«,±³¾°ÑÕÉ«
u16 POINT_COLOR = 0x0000,BACK_COLOR = 0xFFFF;
u16 DeviceCode;  void LCD_WR_REG(u8 data)
{ LCD_CS_CLR;     LCD_RS_CLR;     SPI_WriteByte(SPI2,data);LCD_CS_SET;
}void LCD_WR_DATA(u8 data)
{LCD_CS_CLR;LCD_RS_SET;SPI_WriteByte(SPI2,data);LCD_CS_SET;
}void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
{   LCD_WR_REG(LCD_Reg);  LCD_WR_DATA(LCD_RegValue);
}      void LCD_WriteRAM_Prepare(void)
{LCD_WR_REG(lcddev.wramcmd);
}    void Lcd_WriteData_16Bit(u16 Data)
{   LCD_CS_CLR;LCD_RS_SET;  SPI_WriteByte(SPI2,Data>>8);SPI_WriteByte(SPI2,Data);LCD_CS_SET;
}void LCD_DrawPoint(u16 x,u16 y)
{LCD_SetCursor(x,y);//ÉèÖùâ±êλÖà Lcd_WriteData_16Bit(POINT_COLOR);
}void LCD_Clear(u16 Color)
{unsigned int i,m;  LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);   LCD_CS_CLR;LCD_RS_SET;for(i=0;i<lcddev.height;i++){for(m=0;m<lcddev.width;m++){   Lcd_WriteData_16Bit(Color);}}LCD_CS_SET;
} void LCD_GPIOInit(void)
{GPIO_InitTypeDef  GPIO_InitStructure;        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB ,ENABLE);    //ʹÄÜGPIOBʱÖÓGPIO_InitStructure.GPIO_Pin = GPIO_Pin_9| GPIO_Pin_10| GPIO_Pin_11| GPIO_Pin_12; //GPIOB9,10,11,12GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //ÍÆÍìÊä³öGPIO_Init(GPIOB, &GPIO_InitStructure);//³õʼ»¯
}void LCD_RESET(void)
{LCD_RST_CLR;delay_ms(100); LCD_RST_SET;delay_ms(50);
}void LCD_Init(void)
{  SPI2_Init(); //Ó²¼þSPI2³õʼ»¯LCD_GPIOInit();//LCD GPIO³õʼ»¯                                      LCD_RESET(); //LCD ¸´Î»
//*************2.4inch ILI9341³õʼ»¯**********//    LCD_WR_REG(0xCF);  LCD_WR_DATA(0x00); LCD_WR_DATA(0xD9); //0xC1 LCD_WR_DATA(0X30); LCD_WR_REG(0xED);  LCD_WR_DATA(0x64); LCD_WR_DATA(0x03); LCD_WR_DATA(0X12); LCD_WR_DATA(0X81); LCD_WR_REG(0xE8);  LCD_WR_DATA(0x85); LCD_WR_DATA(0x10); LCD_WR_DATA(0x7A); LCD_WR_REG(0xCB);  LCD_WR_DATA(0x39); LCD_WR_DATA(0x2C); LCD_WR_DATA(0x00); LCD_WR_DATA(0x34); LCD_WR_DATA(0x02); LCD_WR_REG(0xF7);  LCD_WR_DATA(0x20); LCD_WR_REG(0xEA);  LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_REG(0xC0);    //Power control LCD_WR_DATA(0x1B);   //VRH[5:0] LCD_WR_REG(0xC1);    //Power control LCD_WR_DATA(0x12);   //SAP[2:0];BT[3:0] 0x01LCD_WR_REG(0xC5);    //VCM control LCD_WR_DATA(0x08);   //30LCD_WR_DATA(0x26);      //30LCD_WR_REG(0xC7);    //VCM control2 LCD_WR_DATA(0XB7); LCD_WR_REG(0x36);    // Memory Access Control LCD_WR_DATA(0x08); LCD_WR_REG(0x3A);   LCD_WR_DATA(0x55); LCD_WR_REG(0xB1);   LCD_WR_DATA(0x00);   LCD_WR_DATA(0x1A); LCD_WR_REG(0xB6);    // Display Function Control LCD_WR_DATA(0x0A); LCD_WR_DATA(0xA2); LCD_WR_REG(0xF2);    // 3Gamma Function Disable LCD_WR_DATA(0x00); LCD_WR_REG(0x26);    //Gamma curve selected LCD_WR_DATA(0x01); LCD_WR_REG(0xE0);    //Set Gamma LCD_WR_DATA(0x0F); LCD_WR_DATA(0x1D); LCD_WR_DATA(0x1A); LCD_WR_DATA(0x0A); LCD_WR_DATA(0x0D); LCD_WR_DATA(0x07); LCD_WR_DATA(0x49); LCD_WR_DATA(0X66); LCD_WR_DATA(0x3B); LCD_WR_DATA(0x07); LCD_WR_DATA(0x11); LCD_WR_DATA(0x01); LCD_WR_DATA(0x09); LCD_WR_DATA(0x05); LCD_WR_DATA(0x04);       LCD_WR_REG(0XE1);    //Set Gamma LCD_WR_DATA(0x00); LCD_WR_DATA(0x18); LCD_WR_DATA(0x1D); LCD_WR_DATA(0x02); LCD_WR_DATA(0x0F); LCD_WR_DATA(0x04); LCD_WR_DATA(0x36); LCD_WR_DATA(0x13); LCD_WR_DATA(0x4C); LCD_WR_DATA(0x07); LCD_WR_DATA(0x13); LCD_WR_DATA(0x0F); LCD_WR_DATA(0x2E); LCD_WR_DATA(0x2F); LCD_WR_DATA(0x05); LCD_WR_REG(0x2B); LCD_WR_DATA(0x00);LCD_WR_DATA(0x00);LCD_WR_DATA(0x01);LCD_WR_DATA(0x3f);LCD_WR_REG(0x2A); LCD_WR_DATA(0x00);LCD_WR_DATA(0x00);LCD_WR_DATA(0x00);LCD_WR_DATA(0xef);  LCD_WR_REG(0x11); //Exit Sleepdelay_ms(120);LCD_WR_REG(0x29); //display on     LCD_direction(USE_HORIZONTAL);//ÉèÖÃLCDÏÔʾ·½ÏòLCD_LED=1;//µãÁÁ±³¹â     LCD_Clear(WHITE);//ÇåÈ«ÆÁ°×É«
}void LCD_SetWindows(u16 xStar, u16 yStar,u16 xEnd,u16 yEnd)
{   LCD_WR_REG(lcddev.setxcmd); LCD_WR_DATA(xStar>>8);LCD_WR_DATA(0x00FF&xStar);      LCD_WR_DATA(xEnd>>8);LCD_WR_DATA(0x00FF&xEnd);LCD_WR_REG(lcddev.setycmd); LCD_WR_DATA(yStar>>8);LCD_WR_DATA(0x00FF&yStar);      LCD_WR_DATA(yEnd>>8);LCD_WR_DATA(0x00FF&yEnd);LCD_WriteRAM_Prepare(); //¿ªÊ¼Ð´ÈëGRAM
}   void LCD_SetCursor(u16 Xpos, u16 Ypos)
{                       LCD_SetWindows(Xpos,Ypos,Xpos,Ypos);
} void LCD_direction(u8 direction)
{ lcddev.setxcmd=0x2A;lcddev.setycmd=0x2B;lcddev.wramcmd=0x2C;switch(direction){       case 0:                                   lcddev.width=LCD_W;lcddev.height=LCD_H;       LCD_WriteReg(0x36,(1<<3)|(0<<6)|(0<<7));//BGR==1,MY==0,MX==0,MV==0break;case 1:lcddev.width=LCD_H;lcddev.height=LCD_W;LCD_WriteReg(0x36,(1<<3)|(0<<7)|(1<<6)|(1<<5));//BGR==1,MY==1,MX==0,MV==1break;case 2:                                    lcddev.width=LCD_W;lcddev.height=LCD_H;   LCD_WriteReg(0x36,(1<<3)|(1<<6)|(1<<7));//BGR==1,MY==0,MX==0,MV==0break;case 3:lcddev.width=LCD_H;lcddev.height=LCD_W;LCD_WriteReg(0x36,(1<<3)|(1<<7)|(1<<5));//BGR==1,MY==1,MX==0,MV==1break;    default:break;}
}

lcd.h

#ifndef __LCD_H
#define __LCD_H
#include "sys.h"
#include "stdlib.h"//LCDÖØÒª²ÎÊý¼¯
typedef struct
{                                           u16 width;          //LCD ¿í¶Èu16 height;           //LCD ¸ß¶Èu16 id;                 //LCD IDu8  dir;            //ºáÆÁ»¹ÊÇÊúÆÁ¿ØÖÆ£º0£¬ÊúÆÁ£»1£¬ºáÆÁ¡£    u16  wramcmd;       //¿ªÊ¼Ð´gramÖ¸Áîu16  setxcmd;       //ÉèÖÃx×ø±êÖ¸Áîu16  setycmd;        //ÉèÖÃy×ø±êÖ¸Áî
}_lcd_dev;  //LCD²ÎÊý
extern _lcd_dev lcddev; //¹ÜÀíLCDÖØÒª²ÎÊý
/Óû§ÅäÖÃÇø///
#define USE_HORIZONTAL       0//¶¨ÒåÒº¾§ÆÁ˳ʱÕëÐýת·½Ïò    0-0¶ÈÐýת£¬1-90¶ÈÐýת£¬2-180¶ÈÐýת£¬3-270¶ÈÐýת//
//¶¨ÒåLCDµÄ³ß´ç
#define LCD_W 240
#define LCD_H 320//TFTLCD²¿·ÖÍâÒªµ÷Óõĺ¯Êý
extern u16  POINT_COLOR;//ĬÈϺìÉ«
extern u16  BACK_COLOR; //±³¾°ÑÕÉ«.ĬÈÏΪ°×É«//-----------------LCD¶Ë¿Ú¶¨Òå----------------
#define GPIO_TYPE  GPIOB  //GPIO×éÀàÐÍ
#define LED      9        //±³¹â¿ØÖÆÒý½Å        PB9
#define LCD_CS   11       //ƬѡÒý½Å            PB11
#define LCD_RS   10       //¼Ä´æÆ÷/Êý¾ÝÑ¡ÔñÒý½Å PB10
#define LCD_RST  12       //¸´Î»Òý½Å            PB12//QDtechȫϵÁÐÄ£¿é²ÉÓÃÁËÈý¼«¹Ü¿ØÖƱ³¹âÁÁÃð£¬Óû§Ò²¿ÉÒÔ½ÓPWMµ÷½Ú±³¹âÁÁ¶È
#define LCD_LED PBout(LED) //LCD±³¹â             PB9
//Èç¹ûʹÓùٷ½¿âº¯Êý¶¨ÒåÏÂÁеײ㣬ËٶȽ«»áϽµµ½14֡ÿÃ룬½¨Òé²ÉÓÃÎÒ˾ÍƼö·½·¨
//ÒÔÏÂIO¶¨ÒåÖ±½Ó²Ù×÷¼Ä´æÆ÷£¬¿ìËÙIO²Ù×÷£¬Ë¢ÆÁËÙÂÊ¿ÉÒÔ´ïµ½28֡ÿÃ룡 //GPIOÖÃ루À­¸ß£©
#define LCD_CS_SET  GPIO_TYPE->BSRR=1<<LCD_CS    //Ƭѡ¶Ë¿Ú   PB11
#define LCD_RS_SET  GPIO_TYPE->BSRR=1<<LCD_RS    //Êý¾Ý/ÃüÁî  PB10
#define LCD_RST_SET GPIO_TYPE->BSRR=1<<LCD_RST   //¸´Î»             PB12//GPIO¸´Î»£¨À­µÍ£©
#define LCD_CS_CLR  GPIO_TYPE->BRR=1<<LCD_CS     //Ƭѡ¶Ë¿Ú   PB11
#define LCD_RS_CLR  GPIO_TYPE->BRR=1<<LCD_RS     //Êý¾Ý/ÃüÁî  PB10
#define LCD_RST_CLR GPIO_TYPE->BRR=1<<LCD_RST    //¸´Î»             PB12//»­±ÊÑÕÉ«
#define WHITE       0xFFFF
#define BLACK       0x0000
#define BLUE        0x001F
#define BRED        0XF81F
#define GRED                0XFFE0
#define GBLUE               0X07FF
#define RED         0xF800
#define MAGENTA     0xF81F
#define GREEN       0x07E0
#define CYAN        0x7FFF
#define YELLOW      0xFFE0
#define BROWN           0XBC40 //×ØÉ«
#define BRRED           0XFC07 //×غìÉ«
#define GRAY            0X8430 //»ÒÉ«
//GUIÑÕÉ«#define DARKBLUE        0X01CF //ÉîÀ¶É«
#define LIGHTBLUE        0X7D7C //dzÀ¶É«
#define GRAYBLUE         0X5458 //»ÒÀ¶É«
//ÒÔÉÏÈýɫΪPANELµÄÑÕÉ« #define LIGHTGREEN      0X841F //dzÂÌÉ«
#define LIGHTGRAY     0XEF5B //dz»ÒÉ«(PANNEL)
#define LGRAY                   0XC618 //dz»ÒÉ«(PANNEL),´°Ìå±³¾°É«#define LGRAYBLUE         0XA651 //dz»ÒÀ¶É«(Öмä²ãÑÕÉ«)
#define LBBLUE          0X2B12 //dz×ØÀ¶É«(Ñ¡ÔñÌõÄ¿µÄ·´É«)void LCD_Init(void);
void LCD_DisplayOn(void);
void LCD_DisplayOff(void);
void LCD_Clear(u16 Color);
void LCD_SetCursor(u16 Xpos, u16 Ypos);
void LCD_DrawPoint(u16 x,u16 y);//»­µã
u16  LCD_ReadPoint(u16 x,u16 y); //¶Áµã
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2);
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2);
void LCD_SetWindows(u16 xStar, u16 yStar,u16 xEnd,u16 yEnd);u16 LCD_RD_DATA(void);//¶ÁÈ¡LCDÊý¾Ý
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue);
void LCD_WR_DATA(u8 data);
u16 LCD_ReadReg(u8 LCD_Reg);
void LCD_WriteRAM_Prepare(void);
void LCD_WriteRAM(u16 RGB_Code);
u16 LCD_ReadRAM(void);
u16 LCD_BGR2RGB(u16 c);
void LCD_SetParam(void);
void Lcd_WriteData_16Bit(u16 Data);
void LCD_direction(u8 direction );#endif  

SPI.c

#include "spi.h"u8 SPI_WriteByte(SPI_TypeDef* SPIx,u8 Byte)
{while((SPIx->SR&SPI_I2S_FLAG_TXE)==RESET);        //µÈ´ý·¢ËÍÇø¿Õ    SPIx->DR=Byte;        //·¢ËÍÒ»¸öbyte   while((SPIx->SR&SPI_I2S_FLAG_RXNE)==RESET);//µÈ´ý½ÓÊÕÍêÒ»¸öbyte  return SPIx->DR;                   //·µ»ØÊÕµ½µÄÊý¾Ý
} void SPI_SetSpeed(SPI_TypeDef* SPIx,u8 SpeedSet)
{SPIx->CR1&=0XFFC7;if(SpeedSet==1)//¸ßËÙ{SPIx->CR1|=SPI_BaudRatePrescaler_2;//Fsck=Fpclk/2   }else//µÍËÙ{SPIx->CR1|=SPI_BaudRatePrescaler_32; //Fsck=Fpclk/32}SPIx->CR1|=1<<6; //SPIÉ豸ʹÄÜ
} void SPI2_Init(void)
{SPI_InitTypeDef  SPI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;//ÅäÖÃSPI2¹Ü½ÅRCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_14;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_Init(GPIOB, &GPIO_InitStructure);  //SPI2ÅäÖÃÑ¡ÏîRCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2 ,ENABLE);SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;SPI_InitStructure.SPI_Mode = SPI_Mode_Master;SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;SPI_InitStructure.SPI_CRCPolynomial = 7;SPI_Init(SPI2, &SPI_InitStructure);//ʹÄÜSPI2SPI_Cmd(SPI2, ENABLE);
}

test.c

#include "lcd.h"
#include "delay.h"
#include "gui.h"
#include "test.h"
#include "key.h"
#include "led.h"
#include "pic.h"//========================variable==========================//
u16 ColorTab[5]={RED,GREEN,BLUE,YELLOW,BRED};//¶¨ÒåÑÕÉ«Êý×é
//=====================end of variable======================//void DrawTestPage(u8 *str)
{
//»æÖƹ̶¨À¸up
LCD_Clear(WHITE);
LCD_Fill(0,0,lcddev.width,20,BLUE);
//»æÖƹ̶¨À¸down
LCD_Fill(0,lcddev.height-20,lcddev.width,lcddev.height,BLUE);
POINT_COLOR=WHITE;
Gui_StrCenter(0,2,WHITE,BLUE,str,16,1);//¾ÓÖÐÏÔʾ
Gui_StrCenter(0,lcddev.height-18,WHITE,BLUE,"http://www.lcdwiki.com",16,1);//¾ÓÖÐÏÔʾ
//»æÖƲâÊÔÇøÓò
//LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE);
}void main_test(void)
{DrawTestPage("È«¶¯µç×Ó×ۺϲâÊÔ³ÌÐò");    Gui_StrCenter(0,30,RED,BLUE,"È«¶¯µç×Ó",16,1);//¾ÓÖÐÏÔʾGui_StrCenter(0,60,RED,BLUE,"×ۺϲâÊÔ³ÌÐò",16,1);//¾ÓÖÐÏÔʾ  Gui_StrCenter(0,90,GREEN,BLUE,"2.4\" ILI9341 240X320",16,1);//¾ÓÖÐÏÔʾGui_StrCenter(0,120,BLUE,BLUE,"xiaoFeng@QDtech 2018-08-20",16,1);//¾ÓÖÐÏÔʾdelay_ms(1500);      delay_ms(1500);
}void Test_Color(void)
{//DrawTestPage("²âÊÔ1:´¿É«Ìî³ä²âÊÔ");LCD_Fill(0,0,lcddev.width,lcddev.height,WHITE);Show_Str(20,30,BLUE,YELLOW,"BL Test",16,1);delay_ms(800);LCD_Fill(0,0,lcddev.width,lcddev.height,RED);Show_Str(20,30,BLUE,YELLOW,"RED ",16,1);delay_ms(800);LCD_Fill(0,0,lcddev.width,lcddev.height,GREEN);Show_Str(20,30,BLUE,YELLOW,"GREEN ",16,1);delay_ms(800);LCD_Fill(0,0,lcddev.width,lcddev.height,BLUE);Show_Str(20,30,RED,YELLOW,"BLUE ",16,1);delay_ms(800);
}void Test_FillRec(void)
{u8 i=0;DrawTestPage("²âÊÔ2:GUI¾ØÐÎÌî³ä²âÊÔ");LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE);for (i=0; i<5; i++) {POINT_COLOR=ColorTab[i];LCD_DrawRectangle(lcddev.width/2-80+(i*15),lcddev.height/2-80+(i*15),lcddev.width/2-80+(i*15)+60,lcddev.height/2-80+(i*15)+60); }delay_ms(1500);  LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE); for (i=0; i<5; i++) {POINT_COLOR=ColorTab[i];LCD_DrawFillRectangle(lcddev.width/2-80+(i*15),lcddev.height/2-80+(i*15),lcddev.width/2-80+(i*15)+60,lcddev.height/2-80+(i*15)+60); }delay_ms(1500);
}void Test_Circle(void)
{u8 i=0;DrawTestPage("²âÊÔ3:GUI»­Ô²Ìî³ä²âÊÔ");LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE);for (i=0; i<5; i++)  gui_circle(lcddev.width/2-80+(i*25),lcddev.height/2-50+(i*25),ColorTab[i],30,0);delay_ms(1500);    LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE); for (i=0; i<5; i++) gui_circle(lcddev.width/2-80+(i*25),lcddev.height/2-50+(i*25),ColorTab[i],30,1);delay_ms(1500);
}void English_Font_test(void)
{DrawTestPage("²âÊÔ5:Ó¢ÎÄÏÔʾ²âÊÔ");Show_Str(10,30,BLUE,YELLOW,"6X12:abcdefghijklmnopqrstuvwxyz0123456789",12,0);Show_Str(10,45,BLUE,YELLOW,"6X12:ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",12,1);Show_Str(10,60,BLUE,YELLOW,"6X12:~!@#$%^&*()_+{}:<>?/|-+.",12,0);Show_Str(10,80,BLUE,YELLOW,"8X16:abcdefghijklmnopqrstuvwxyz0123456789",16,0);Show_Str(10,100,BLUE,YELLOW,"8X16:ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",16,1);Show_Str(10,120,BLUE,YELLOW,"8X16:~!@#$%^&*()_+{}:<>?/|-+.",16,0); delay_ms(1200);
}void Test_Triangle(void)
{u8 i=0;DrawTestPage("²âÊÔ4:GUI TriangleÌî³ä²âÊÔ");LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE);for(i=0;i<5;i++){POINT_COLOR=ColorTab[i];Draw_Triangel(lcddev.width/2-80+(i*20),lcddev.height/2-20+(i*15),lcddev.width/2-50-1+(i*20),lcddev.height/2-20-52-1+(i*15),lcddev.width/2-20-1+(i*20),lcddev.height/2-20+(i*15));}delay_ms(1500);    LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE); for(i=0;i<5;i++){POINT_COLOR=ColorTab[i];Fill_Triangel(lcddev.width/2-80+(i*20),lcddev.height/2-20+(i*15),lcddev.width/2-50-1+(i*20),lcddev.height/2-20-52-1+(i*15),lcddev.width/2-20-1+(i*20),lcddev.height/2-20+(i*15));}delay_ms(1500);
}void Chinese_Font_test(void)
{   DrawTestPage("²âÊÔ6:ÖÐÎÄÏÔʾ²âÊÔ");Show_Str(10,30,BLUE,YELLOW,"16X16:È«¶¯µç×Ó¼¼ÊõÓÐÏÞ¹«Ë¾»¶Ó­Äú",16,0);Show_Str(10,50,BLUE,YELLOW,"16X16:WelcomeÈ«¶¯µç×Ó",16,0);Show_Str(10,70,BLUE,YELLOW,"24X24:ÉîÛÚÊÐÖÐÎIJâÊÔ",24,1);Show_Str(10,100,BLUE,YELLOW,"32X32:×ÖÌå²âÊÔ",32,1);delay_ms(1200);
}void Pic_test(void)
{DrawTestPage("²âÊÔ7:ͼƬÏÔʾ²âÊÔ");//LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE);Gui_Drawbmp16(30,30,gImage_qq);Show_Str(30+12,75,BLUE,YELLOW,"QQ",16,1);Gui_Drawbmp16(90,30,gImage_qq);Show_Str(90+12,75,BLUE,YELLOW,"QQ",16,1);Gui_Drawbmp16(150,30,gImage_qq);Show_Str(150+12,75,BLUE,YELLOW,"QQ",16,1);delay_ms(1200);
}void Rotate_Test(void)
{u8 i=0;u8 *Direction[4]={"Rotation:0","Rotation:90","Rotation:180","Rotation:270"};for(i=0;i<4;i++){LCD_direction(i);DrawTestPage("²âÊÔ8:ÆÁÄ»Ðýת²âÊÔ");Show_Str(20,30,BLUE,YELLOW,Direction[i],16,1);Gui_Drawbmp16(30,50,gImage_qq);delay_ms(1000);delay_ms(1000);}LCD_direction(USE_HORIZONTAL);
}

完整程序:STM32F103ZET6通过硬件SPI驱动2.4寸TFT-C文档类资源-CSDN下载

STM32F103ZET6通过SPI驱动2.4寸TFT彩屏相关推荐

  1. 【扩展】【程序】使用硬件SPI驱动1.3寸TFT彩屏

    1.3寸TFT屏幕的使用 使用STM32F103C8T6驱动1.3寸TFT屏幕的驱动代码用法 这里使用的开发板和屏幕都来自某宝店家大越创新 1. 硬件接线 开发板上已经预留了屏幕的位置,直接将屏幕插上 ...

  2. ESP32 SPI驱动1.44寸TFT彩屏(5)

    TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为:Thin Film Transistor-Liquid Crystal Display. TFT-LCD 与无源 TN-LCD.STN-LCD 的 ...

  3. STM32F103以SPI 驱动128*128的TFT彩屏,LCD驱动为ST7735s,程序使用CubeMX的HAL库开发方式,另外也做了标准库的程序移植

    0.  关于本文: 其实我一直都比较懒,不喜欢写博客.但网上关于详细讲解SPI驱动LCD的文章比较少,虽然也能下载到一些案例程序,但对于初学者来说,如果不懂LCD驱动的原理,不懂如何对文字和图片取模, ...

  4. STC32G单片机驱动1.8寸TFT LCD128X160 ST7735S SPI串口驱动示例

    STC32G单片机驱动1.8寸TFT LCD128X160 ST7735S SPI串口屏示例

  5. STM32+CubeMax驱动1.3寸TFT屏幕

    1.3寸TFT屏幕的使用 使用STM32F103C8T6驱动1.3寸TFT屏幕的驱动代码用法 这里使用的开发板和屏幕都来自某宝店家大越创新 1. 硬件接线 开发板上已经预留了屏幕的位置,直接将屏幕插上 ...

  6. ESP8266驱动1.44寸TFT屏幕(例程问题)

    ESP8266驱动1.44寸TFT屏幕(例程问题) 一.接线说明 二.引脚对应 D1 - 5 D2 - 4 D3 - 0 三.修改例程 将D1.D2.D3改成5.4.0然后编译上传即可 .D2.D3改 ...

  7. STM32 FSMC接口驱动4.3寸TFT LCD屏

    STM32 FSMC接口驱动4.3寸TFT LCD屏 STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏. 这里以STM32F103VET ...

  8. STM32 驱动4.3寸TFT LCD 触摸屏

    STM32 驱动4.3寸TFT LCD 触摸屏 STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏.触摸屏是在显示屏上覆盖一层触摸感应的外 ...

  9. esp32 cam 1.44寸TFT彩屏 ST7735S驱动 TFT_eSPI库驱动

    ESP32 CAM引脚与TFT1.44(ST7735S)引脚接线 ESP32 CAM TFT 1.44 5V VCC GND GND GND NC NC 5V BLC D14 SCL D15 SDA ...

最新文章

  1. pads铺铜不能开启drp_PowerPCB (PADS )常见问题全集-泪滴-规则设定
  2. erp服务器哪个稳定,选择erp服务器需要注意的几大问题
  3. JavaWeb-JavaMail邮件开发
  4. rep movsd + rep movsb 内联实现 strcpy
  5. MultiModel:跨领域多任务机器学习
  6. 郓城天气预报软件测试,郓城天气预报15天
  7. [html] input上传图片怎样触发默认拍照功能
  8. 执行-技术人的管理之路--总结
  9. spd不能修改服务器内存条的原因,修改内存SPD 解决蓝屏问题
  10. UML图入门学习笔记
  11. CImg库【C++】
  12. win apache php 配置,win下Apache mysql PHP配置
  13. java 同步块原理_Java同步代码块和同步方法原理与应用案例详解
  14. numpy—np.nan_to_num
  15. Java商城项目实战
  16. 一个简单的dw网页制作作业,学生个人html静态网页制作成品代码——怪盗基德动漫主题网页成品(15页)
  17. oj1029统计素数并求和
  18. 怎么知道当前计算机用户名和密码,怎么查看电脑当前所设置的密码
  19. html座机正则表达式,java座机号码正则表达式
  20. OS学习笔记-4(清华大学慕课)mooc实验一

热门文章

  1. SEO知识(总结土著游民)(1)
  2. 【单片机基础篇】rc延迟电路
  3. 工欲善其事必先利其器-C语言拓展–嵌入式C语言(一)
  4. 【51 Nod 1326】遥远的旅途
  5. 偶遇 防火墙,IDS,IPS三个老兄争吵
  6. 牛客网输入输出练习c++ 个人版题解
  7. 个性化海报在爱奇艺视频推荐场景中的实践
  8. CentOS7安装K8S V1.23.3
  9. (〇)SpringCloud之SpringCloud是什么
  10. unity中awak,start,update之间的关系