TOP51函数集使用手册
TFT扩展集
v e r1.0
王伟民编写
目录
1. TFT 函数 (4)
1.1 GUI层函数 (4)
GUI_clearscreen (5)
GUI_Point (5)
GUI_sprintf_chartobit (6)
GUI_sprintf_chartohex (6)
GUI_sprintf_chartodec (7)
GUI_sprintf_nu (7)
GUI_HLine (8)
GUI_RLine (8)
GUI_line (9)
GUI_DisPicture (9)
GUI_sprintf_char (10)
GUI_sprintf_string (10)
GUI_sprintf_HZ (11)
GUI_box (11)
GUI_rectangle (12)
GUI_wrul (12)
GUI_wrlval (13)
1.2 驱动层函数 (16)
ILI9325_initial (16)
write_cmd (17)
write_data (17)
write_data_u16 (17)
write_cmd_data (18)
LCD_setwindow (18)
LCD_setxy (19)
1. TFT 函数
利用TFT函数,用户可以非常方便地在市场最流行的TFT彩屏模块上,实现画点、画线、矩形、正方形、填充、中英文、图标显示。
我们提供的TFT函数采用分层结构,分为驱动层函数和GUI层函数两部分。
1.1 GUI层函数
普通用户一般调用的是GUI函数,GUI函数我们必须很好的掌握,所提供GUI函数见下表:
表1-1: GUI 函数
函数 描述
GUI_clearscreen 清屏
GUI_Point 画点
GUI_sprintf_chartobit 无符号字符型数以二进制形式显示
GUI_sprintf_chartohex 无符号字符型数以十六进制形式显示
GUI_sprintf_chartodec 无符号字符型数以十进制形式形式显示 GUI_sprintf_nu 显示1位16进制数
GUI_HLine 画横线
GUI_RLine 画竖线
GUI_line 画直线
GUI_DisPicture 显示图片(图标)
GUI_sprintf_char 显示英文或数字字符
GUI_sprintf_string 显示英文字符串
GUI_sprintf_HZ 显示预定义汉字字符串
GUI_box 画实心矩形
GUI_rectangle 画空心矩形
GUI_wrul 以十进制形式显示无符号长整型数GUI_wrlval 以十进制形式显示长变量
函数描述
所有GUI层函数存在于gui.c文件中。头文件均为: gui.h。
GUI_clearscreen
功能:清屏。
函数原型: void GUI_clearscreen(uint b_color);
入口参数: b_color是背景颜色。
出口参数:无
说明:使用背景颜色清除TFT模块屏幕的全部显示内容。
代码示例:
GUI_clearscreen(0);/*清屏,背景为黑色*/
GUI_clearscreen(0x001f);/*清屏,背景为蓝色*/
GUI_clearscreen(BLUE);/*清屏,背景为蓝色*/
GUI_clearscreen(RGB(128,35,180));/*清屏,背景为任意色*/
GUI_Point
功能:画点。
函数原型: void GUI_Point(uchar x, uint y, uint color);
入口参数: (x,y)是点的坐标,color 是点的颜色。
出口参数:无
说明:用指定的颜色在指定的坐标位置上画出一个点。
代码示例:
GUI_Point(0,0,0);/*在TFT屏左上角画一个黑色点*/
GUI_Point(100,100,0x001f);/*在TFT屏x=100、y=100处画一个蓝色点*/
GUI_Point(207,169,BLUE); /*在TFT屏x=207、y=169处画一个蓝色点*/
GUI_Point(207,169,RGB(128,35,180)); /*在TFT屏x=207、y=169处画一个任意色点*/
GUI_sprintf_chartobit
功能:无符号字符型数以二进制形式显示。
函数原型: void GUI_sprintf_chartobit(uint8 x, uint y,uint8 dat, uint color,uint b_color);
入口参数: (x,y)是显示内容的左上角坐标,dat 是欲显示的无符号字符型数,color 是显示字符的颜色,b_color是背景颜色。
出口参数:无
说明:无符号字符型数用指定的颜色和背景颜色在指定的坐标位置上以二进制形式显示出来。
代码示例:
Uchar i=123;
GUI_sprintf_chartobit(123,231,i, RED,BLACK);/*无符号字符型数以二进制形式显示*/
GUI_sprintf_chartohex
功能:无符号字符型数以十六进制形式显示。
函数原型: void GUI_sprintf_chartohex(uint8 x, uint y,uint8 dat, uint color,uint b_color);
入口参数: (x,y)是显示内容的左上角坐标,dat 是欲显示的无符号字符型数,color
是显示字符的颜色,b_color是背景颜色。
出口参数:无
说明:无符号字符型数用指定的颜色和背景颜色在指定的坐标位置上以十六进制形式显示出来。
代码示例:
Uchar i=123;
GUI_sprintf_chartohex(123,231,i, RED,BLACK);/* 无符号字符型数以十六进制形式显示*/
GUI_sprintf_chartodec
功能:无符号字符型数以十进制形式形式显示。
函数原型: void GUI_sprintf_chartodec( uchar x,uchar y,uchar dat,uint color,uint b_color);
入口参数: (x,y)是显示内容的左上角坐标,dat 是欲显示的无符号字符型数,color 是显示字符的颜色,b_color是背景颜色。
出口参数:无
说明:无符号字符型数用指定的颜色和背景颜色在指定的坐标位置上以十进制形式显示出来。
代码示例:
Uchar i=123;
GUI_sprintf_chartodec(123,231,i, RED,BLACK);/* 无符号字符型数以十进制形式显示*/
GUI_sprintf_nu
功能:显示1位16进制数。
函数原型: void GUI_sprintf_nu(uchar x, uint y,uchar nu, uint color,uint b_color);
入口参数: (x,y) 是显示内容的左上角坐标,c:欲显示的1位16进制数,color:颜色,b_color:背景颜色。
出口参数:无
说明:用指定位置上显示1位16进制数。
代码示例:
Uchar i=15;
GUI_sprintf_nu(x,y,i,0x07E0,0x0000); /*指定位置上显示1位16进制数F*/
GUI_HLine
功能:画横线。
函数原型: void GUI_HLine(uchar x, uint y, uchar length, uint color);
入口参数: (x,y)是横线起点坐标,length是横线长度,color 是横线颜色。
出口参数:无
说明:用指定的颜色在指定位置上画出指定长度的一条横线。
代码示例:
GUI_HLine(10, 100, 50, GREEN);/*画出50像素长的绿色横线,起点为x=10,
y=100*/
GUI_RLine
功能:画竖线。
函数原型: void GUI_RLine(uchar x, uint y, uint high, uint color) ;
入口参数: (x,y)是竖线起点坐标,high 竖线高度,color 是竖线颜色。
出口参数:无
说明:用指定的颜色在指定位置上画出指定长度的一条竖线。
代码示例:
GUI_RLine (10, 0, 78, GREEN);/*画出78像素长的绿色竖线,起点为x=10, y=0*/
GUI_line
功能:画直线(可以画任意方向直线,包括横线、竖线、斜线)。
函数原型: void GUI_line(uint x1,uint y1,uint x2,uint y2,uint color) ;
入口参数: (x1,y1)起点, (x2,y2)终点, color颜色。
出口参数:无
说明:用指定的颜色在指定的两点间画出一条直线。
注意:本函数没有限制规定画线方向,也就是可以画任意方向直线,例如: GUI_line(0,0,239,319,GRAY) ;
和
GUI_line(239,319,0,0,GRAY) ;
都是允许的,不会出错!
代码示例:
GUI_line(0,0,239,319,GRAY) ;/*画出画出屏幕的对角线,颜色是灰色*/
GUI_line(0,0,0,319,GRAY) ;/*画出一条竖线,颜色是灰色*/
GUI_line(0,0,239,0,GRAY) ;/*画出一条横线,颜色是灰色*/
GUI_DisPicture
功能:显示图片(图标)。
函数原型:void GUI_DisPicture(uchar x, uint y, uchar length, uint high) ; 入口参数: (x,y)是开始点的坐标,length是图片长度,high是图片高度。
出口参数:无
说明:用指定位置上显示事先定义的图片。要显示的图片事先定义在bmp.h中的pic[]数组中,如果想修改图片大小、内容,请修改bmp.h中的pic[]数组,建议用Image2Lcd 软件将你要显示的图象自动转换为数组数据。
代码示例:
GUI_DisPicture(180,150, 50, 50);/*在指定位置显示50*50事先定义的图标*/
GUI_sprintf_char
功能:显示英文或数字字符。
函数原型: void GUI_sprintf_char(uchar x, uint y,uchar c, uint color,uint b_color);
入口参数: (x,y) 是显示内容的左上角坐标,c:显示的英文字符,color:颜
色,b_color:背景颜色。
出口参数:无
说明:在指定位置上显示单个英文字符或数字字符。
代码示例:
GUI_sprintf_char (0,0,’a’,BLUE,WHITE);/*在LCD屏左上角显示蓝色白底的单
个英文字符a*/
GUI_sprintf_char (240-8,320-16,’0’,BLUE,WHITE);/*在LCD屏右下角显示蓝色白底的单个数字字符0*/
GUI_sprintf_string
功能:显示英文字符串。
函数原型: void GUI_sprintf_string(uchar x, uint y,char code *s, uint color,uint b_color);
入口参数: (x,y) 是显示内容的左上角坐标,*s:英文字符串指针,color:颜
色,b_color:背景颜色。
出口参数:无
说明:在指定位置上显示英文字符串。
代码示例:
GUI_sprintf_string (15,30,"-- https://www.sodocs.net/doc/556888997.html, --",BLUE,WHITE);/*在TFT屏指定位置显示蓝色白底的"https://www.sodocs.net/doc/556888997.html,--"*/
GUI_sprintf_HZ
功能:显示预定义汉字字符串。
函数原型: void GUI_sprintf_HZ(uchar x, uint y, uint color,uint b_color); 入口参数: (x,y) 是显示内容的左上角坐标,color:颜色,b_color:背景颜色。 出口参数: 无
说明:在指定位置上显示预定义的中文字符串。要显示的中文字符串事先定义在chinese.h中的china_char[]数组中,如果想修改中文字符串长度、内容,请修改chinese.h中的china_char[]数组,建议用字模提取软件zimoV2.2将你要显示的中文字符串自动转换为数组数据。
代码示例:
GUI_sprintf_HZ (15,30,,BLUE,WHITE);/*在TFT屏指定位置显示蓝色白底的预定义汉字字符串*/
GUI_box
功能:画实心矩形。
函数原型:void GUI_box(uchar sx,uint sy,uchar ex,uint ey,uint color);
入口参数: (sx,sy)左上角顶点坐标, (ex,ey)右下角顶点坐标, color颜色
出口参数: 无
说明:在指定位置上画出实心矩形。
代码示例:
GUI_box(0,0,100,100,GREEN);/*画出一个绿色的实心正方形*/
GUI_box(34,78,123,230,GREEN);/*画出一个绿色的实心长方形*/
GUI_rectangle
功能:画空心矩形。
函数原型:void GUI_rectangle( uchar sx,uint sy,uchar ex,uint ey,uint color);
入口参数: (sx,sy)左上角顶点坐标, (ex,ey)右下角顶点坐标, color颜色
出口参数: 无
说明:在指定位置上画出空心矩形。
代码示例:
GUI_rectangle(0,0,100,100,GREEN);/*画出一个绿色的空心正方形*/ GUI_rectangle(34,78,123,230,GREEN);/*画出一个绿色的空心长方形*/
GUI_wrul
功能:以十进制形式显示无符号长整型数。
函数原型: void GUI_wrul(uchar x, uint y, unsigned long num, uint color,uint b_color); 入口参数: (x,y) 是显示内容的右上角坐标; num是欲显示的无符号长整型数num的数值范围为:0~4,294,967,295(十进制),也就是说利用该函数,我们最多将一个10位十进制数显示在LCD屏上;color:颜色,b_color:背景颜色。
出口参数:无
说明: 将一个无符号长整型数以十进制形式显示在TFT屏上。
注意:在使用该函数时,不论最终显示的数有几位,它都将在LCD屏幕上占10个字符
的空间(显示的多位十进制数不足10位时,本函数会在有效显示数字前面补空格)。例如下面的一段代码:
unsigned long tp;
tp=1234;
LCD_wrul(239,240-16,tp,WHITE,BLACK);
最后在在TFT屏幕右下角上显示:前面6个不可见的空格,后面是1234。
代码示例:
unsigned long tp;
tp=1234567890;
LCD_wrul(0,240-16,tp,WHITE,BLACK);
GUI_wrlval
功能:以十进制形式显示长变量。
函数原型: void GUI_wrlval(uchar x, uint y,unsigned long num,uchar bits,uchar dp,uint color,uint b_color);
入口参数:
x,y ------是显示内容的右上角坐标
num ------欲显示的长变量
bits ------允许显示的位数
dp ------小数点位置
color ------颜色
b_color ------背景颜色
出口参数:无
说明:
将一个长变量的数值以十进制形式显示在TFT屏上,可以根据需要确定是否显示小数点以及小数点位置,也可以确定在TFT屏幕上显示的位数。
注意:
1、要显示的数据比规定的显示位数多,规定的位全部写-,表示数据溢出。
2、本函数实际上相当于GUI_wrul函数的增强版,如果我们指定bits=10 dp=0,,
如下所示:
GUI_wrlval(20,239,tp,10,0,WHITE,BLACK);
那么,其作用和GUI_wrul函数完全一样。
代码示例1:
unsigned long tp;
tp=1234567890;
GUI_wrlval(20,239,tp,5,2,WHITE,BLACK);
屏幕显示为:
---.--
表示数据溢出。
代码示例2:
unsigned long tp;
tp=123;
GUI_wrlval(20,239,tp,5,2,WHITE,BLACK);
屏幕显示为:
前面两个不可见的空格,后面1.23
代码示例3:
unsigned long tp;
tp=123;
GUI_wrlval(20,239,tp,3,0,WHITE,BLACK);
屏幕显示为:
123
RGB
功能:RGB颜色混合。
函数原型:uint RGB(uchar R,uchar G,uchar B);
入口参数:R(红色分量)0-255,G(绿色分量)0-255,B(蓝色分量)0-255
出口参数: 按R5-G6-B5格式混合后的16位颜色码。
说明:将电脑上常见的R8-G8-B8格式转换成8位单片机常用的R5-G6-B5格式。
代码示例:
GUI_Point(207,169,RGB(128,35,180)); /*在TFT屏x=207、y=169处画一个任意色点*/
1.2 驱动层函数
所提供驱动层函数见下表,普通用户一般不会直接调用驱动层函数,因此不必了解和掌握,这里只作为资料列出:
表1-1: TFT驱动层函数
函数 描述
ILI9325_initial TFT初始化
write_cmd 写命令
write_data 写数据
write_data_u16 写16位数据
write_cmd_data 写命令数据
LCD_setwindow 设置显示窗口
LCD_setxy 设定当前显示坐标
函数描述
所有驱动层函数存在于ILI9325.c文件中。头文件均为: ILI9325.h。
ILI9325_initial
功能: TFT初始化。
函数原型: void ILI9325_initial(void)
入口参数: 无
出口参数:无
说明:初始化TFT控制器。
代码示例: ILI9325_initial();
write_cmd
功能: 写命令。
函数原型: void write_cmd(uchar CH,uchar CL);
入口参数: CH,CL分别为命令字的高8位和低8位,指定要执行的命令。 出口参数:无
说明:该函数把命令字写入到TFT控制器。
代码示例:
write_cmd(0x00,0x01);
write_data
功能: 写数据。
函数原型: void write_data(uchar DH,uchar DL);
入口参数: DH,DL分别为数据字的高8位和低8位,指定要写入的数据。 出口参数:无
说明:该函数把数据字写入到TFT控制器。
代码示例:
write_data(0x06,0x00);
write_data_u16
功能: 写16位数据。
函数原型: void write_data_u16(uint dat);
入口参数: dat为要写入的16位数据。
出口参数:无
说明:该函数把数据字写入到TFT控制器。
代码示例:
write_data_u16(0x0600);
write_cmd_data
功能: 写命令数据。
函数原型:void write_cmd_data (uchar cmd,uint dat);
入口参数: cmd为要写入的命令字节;dat为要写入的16位数据。
出口参数:无
说明:该函数把命令字节和数据字以成对的方式一同写入到TFT控制器。 代码示例:
write_cmd_data(0x0080,0x0000);
LCD_setwindow
功能: 设置显示窗口。
函数原型:void LCD_setwindow(uchar x0,uint y0,uchar x1,uint y1); 入口参数: x0 y0,为显示窗口左上角坐标;x1,y1为显示窗口右下角坐标。 出口参数:无
说明:该函数设置TFT模块的显示窗口。
代码示例:
LCD_setwindow(0, 0,239,319);/*设置全屏窗口*/
LCD_setwindow(100, 120,180,150);/*设置局部窗口*/
LCD_setxy
功能: 设定当前显示坐标。
函数原型:void LCD_setxy(uchar x,uint y);
入口参数: x,y为当前显示坐标。
出口参数:无
说明:本函数实际上是LCD_setwindow函数的一个特例,显示窗口为最小,仅是一个像素点。
代码示例:
LCD_setxy(0,0);/*设定当前显示坐标为TFT屏左上角*/
LCD_setxy(100,100);/*设定当前显示坐标为x=100,y=100处*/
版权声明:
爱晶电子网站拥有“TOP51 函数集”的全部版权。
《“TOP51 函数集”使用手册》编写比较仓促,可能会存在错误或不当之处,欢迎朋友们指正。
我们的联系方式:
地址:(312300)浙江省上虞市百官恒利西4区6-305室联系人:王伟民
电话:0575-********
网站:https://www.sodocs.net/doc/556888997.html,
https://www.sodocs.net/doc/556888997.html,
E-mail:ajdz@https://www.sodocs.net/doc/556888997.html,