写点比较常用的显示函数。
首先显示一张静止的画面,上面显示字符串(目前还不会显示汉字)
只需要自己编写主函数,将别人例程里的lcd.c,lcd.h等相关头文件加到工程即可
#include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include "lcd.h" void init() { delay_init(); //延时函数初始化 uart_init(9600); //串口初始化为9600 LED_Init(); //初始化与LED连接的硬件接口 LCD_Init(); POINT_COLOR=BLACK; //定义画笔颜色 LCD_Clear(RED); } int main(void) { u8 x=0,i; u16 ty; init(); LCD_ShowString(30,40,200,24,24,"My first TFT ^_^"); ty=70; for(i=1;i<=10;i++,ty+=20) { LCD_ShowString(20,ty,200,12,12,"the deep you love,the more you get"); } while(1) {;} }
注意到初始化那,因为LCD初始化的时候有用到printf,所以一定要初始化串口,不然会死机TAT
对于POINT_COLOR,顾名思义,而且也可以在库中找到定义,就是定义画笔颜色(相当于字体的颜色)
u16 POINT_COLOR=0x0000; //画笔颜色 u16 BACK_COLOR=0xFFFF; //背景色
我们定义为BLACK(黑色),也可以修改为别的颜色(对应相应的大写英文)
LCD_Clear(color); 这个函数是清屏+填充颜色 (颜色同上)
LCD_ShowString()函数:
//显示字符串 //x,y:起点坐标 //width,height:区域大小 //size:字体大小 //*p:字符串起始地址 void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)
字体大小有3种选择,12 ,16,24 前两个参数好填,x,y就是起始坐标,而区域大小填 (200,字体大小(3种选择))最后一个参数应该很好理解就不多说了
最后我们令 while(1);卡住程序以显示静止的画面
颜色库
//画笔颜色 #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 //灰色
下面是一些画图函数
快速画点
//快速画点 //x,y:坐标 //color:颜色 void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color)
画线
//画线 //x1,y1:起点坐标 //x2,y2:终点坐标 void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2)
画矩形,给出矩形对角线上的两个端点坐标即可。
//画矩形 void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2)
画圆
//在指定位置画一个指定大小的圆 //(x,y):中心点 //r :半径 void LCD_Draw_Circle(u16 x0,u16 y0,u8 r)
在指定区域填充单一颜色(只能是指定矩形区域)而且给的的坐标只能是 sx<=ex && sy<=ey
//在指定区域内填充指定颜色 //区域大小:(xend-xsta+1)*(yend-ysta+1) //xsta //color:要填充的颜色 void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)
在指定区域填充颜色块,同上,只不过颜色要放到数组里面传过去
//在指定区域内填充指定颜色块 //(sx,sy),(ex,ey):填充矩形对角坐标,区域大小为:(ex-sx+1)*(ey-sy+1) //color:要填充的颜色 void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color)
还有一些好玩的函数
横屏显示
//设置LCD显示方向 //dir:0,竖屏;1,横屏 void LCD_Display_Dir(u8 dir)
开启/关闭显示
//LCD开启显示 void LCD_DisplayOn(void) //LCD关闭显示 void LCD_DisplayOff(void)
时间: 2024-10-13 17:53:30