//x,y :起点坐标
//len :小数点后的位数
//size:字体大小,此处省略,默认1608字体
//color:颜色,此处仅保留前景色,可自行修改
//num:数值(0~4294967295);
注意到初始化那,因为LCD初始化的时候有用到printf,所以一定要初始化串口,不然会死机TAT
我们定义为BLACK(黑色),也可以修改为别的颜色(对应相应的大写英文)
LCD_Clear(color); 这个函数是清屏+填充颜色 (颜色同上)
字体大小有3种选择,12 ,16,24 前两个参数好填,x,y就是起始坐标,而区域大小填 (200,字体大小(3种选择))最后一个参数应该很好理解就不多说了
画线
画矩形,给出矩形对角线上的两个端点坐标即可。
画圆
在指定区域填充单一颜色(只能是指定矩形区域)而且给的的坐标只能是 sx<=ex && sy<=ey
在指定区域填充颜色块,同上,只不过颜色要放到数组里面传过去
还有一些好玩的函数
开启/关闭显示
//len :小数点后的位数
//size:字体大小,此处省略,默认1608字体
//color:颜色,此处仅保留前景色,可自行修改
//num:数值(0~4294967295);
void LCD_ShowNum(u16 x,u16 y,float num,u8 len,u16 color)
- #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; //背景色
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)