单色屏升级:如何快速升级T5UIC1彩屏

时间:2018-12-07 分类:产品资讯


26093f7e62b3418d_html_2c2be46cbf157deb



1.为什么要升级彩屏?

随着科技的日新月异,品质升级已也成为延长产品生命周期的重要因素之一,彩屏替换传统的显示方案也早已是大势所趋。传统显示方案主要包括单色液晶屏120*120128*64192*64240*128)、断码液晶屏(VATNHTNSTN)以及数码管,都可以升级为T5UIC1彩屏。

本文主要介绍如何从传统单色显示方案快速升级为T5UIC1平台彩屏。


2.T5UIC1平台彩屏特点是什么?

何为T5UIC1彩屏呢?T5UIC1平台是基于2024澳门原料网网站T5CPU,针对不需要触摸屏、UI功能简单、成本要求苛刻的应用,例如小家电、美容养生、电梯、自动化仪表等。

主要特点包括:

  • T5CPU驱动方案,显示效果好,成本极低;

  • 匹配基本的UI需求,开发简单;

  • 功能齐全:涵盖图标指示、JPEG解压、动态二维码、ASCII(6*12-64*64)、汉字库(12*12-64*64GB2312)、绘图。

 

3.如何升级T5UIC1平台彩屏?

对于硬件方面,需要在控制部分预留一个串口,并保障电源电压匹配。对于软件部分,T5UIC1平台产品为指令集开发模式(具体开发指南可以参照T5UIC1应用指南——可在迪文官网“资料下载”栏目的“应用设计参考”子栏目下载压缩文件包《T5CPU智能屏开发指南》,即可从中找到文件“T5UIC1应用指南_V20”)。 

本文将MCU指令(以STM32为例)和T5UIC1指令做成了库函数的形式(MAIN.C),开发者可直接复制使用。

本文库函数主要涵盖字符串显示、二维码显示、绘图、图标显示、动态图标等功能。文件主要包括头文件DWIN.H和库函数MAIN.C

 

3.1头文件(DWIN.H

头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明。

相关内容:

#ifndef__DWIN_H

#define__DWIN_H

#include

#include"stm32f10x_conf.h"

voidLCD_printf(u8 mode,u16 Color,u16 Bcolor,u16 x,u16 y,const char*format, ...);//显示字符串或者变量

voiderweima(u16 x,u16 y,u8 QR_Pixel,const char *format, ...);//生成二维码

voidclr(u16 Color);//清屏

voidLinear_interpolation(u8 num,u16 Color,...);//绘制直线

voidPlace_point(u8 num,u16 Color,u16 nx,u16 ny,...);//绘制点

voidDIM_Set(u8 Set);//调节背光

voidBode_Set(u16 Set);//调节扩展串口波特率

voiddisd_ico(u16 x,u16 y,u8 mode,u8 Icon_lib,u8 Icon_IDs,u8 Icon_0IDe,u8Delay_time);//设置动态图标

voiddis_ico(u16 x,u16 y,u8 mode,u8 ids);//显示ico图标

voidpic(u8 id);//写数据存储器

#endif

 

3.2库函数(MAIN.C

内容如下:

#include

#include"stm32f10x_conf.h"

#include"dwin.h"

/****************显示字符串函数*****************/

/*参数:mode:D7********************************/

voidLCD_printf(u8 mode,u16 Color,u16 Bcolor,u16 x,u16 y,const char*format, ...)

{

  chartmp[200];

  va_listarg;

  va_start(arg,format);

  vsprintf(tmp,format,arg);

  va_end(arg);

Usart_SendByte(USART1,0xaa);


Usart_SendByte(USART1,0x11);

Usart_SendByte(USART1,mode);//模式

Usart_SendByte(USART1,Color/256);

Usart_SendByte(USART1,Color%256);//前景颜色

Usart_SendByte(USART1,Bcolor/256);

Usart_SendByte(USART1,Bcolor%256);//背景颜色

Usart_SendByte(USART1,x/256);

Usart_SendByte(USART1,x%256);//横坐标

Usart_SendByte(USART1,y/256);

Usart_SendByte(USART1,y%256);//Y坐标


  Usart_SendString(USART1,tmp);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************显示二维码函数*****************/

/*参数:mode:D7********************************/

voiderweima(u16 x,u16 y,u8 QR_Pixel,const char *format, ...)

{

  chartmp[200];

  va_listarg;

  va_start(arg,format);

  vsprintf(tmp,format,arg);

  va_end(arg);


Usart_SendByte(USART1,0xaa);


Usart_SendByte(USART1,0x21);

 

Usart_SendByte(USART1,x/256);

Usart_SendByte(USART1,x%256);//横坐标

Usart_SendByte(USART1,y/256);

Usart_SendByte(USART1,y%256);//Y坐标

Usart_SendByte(USART1,QR_Pixel);//二维码每个点的大小


  Usart_SendString(USART1,tmp);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************读存储器***********************/

/*参数:mode:D7********************************/

voidread_sram_flsh(u16 Length,u8 Type,u16 Address)//写数据存储器

{

  Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x32);

Usart_SendByte(USART1,Type);

Usart_SendByte(USART1,Address/256);

Usart_SendByte(USART1,Address%256);

Usart_SendByte(USART1,Length);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

 

/****************绘图清屏函数*****************/

/*参数:mode:D7********************************/

voidclr(u16 Color)

{

 

Usart_SendByte(USART1,0xaa);


Usart_SendByte(USART1,0x01);

 

Usart_SendByte(USART1,Color/256);

Usart_SendByte(USART1,Color%256);//颜色

 


Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************绘图直线插入函数*****************/

/*参数:mode:D7********************************/

voidLinear_interpolation(u8 num,u16 Color,...)

{

    va_listarg_ptr;

    inttempValue;

num*=2;

    Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x03);

Usart_SendByte(USART1,Color/256);

Usart_SendByte(USART1,Color%256);

    va_start(arg_ptr,Color);

    while(num--)

    {

          tempValue=va_arg(arg_ptr,int);

          Usart_SendByte(USART1,tempValue/256);

Usart_SendByte(USART1,tempValue%256);

    }

 

    va_end(arg_ptr);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************绘图打点插入函数*****************/

/*参数:mode:D7********************************/

voidPlace_point(u8 num,u16 Color,u16 nx,u16 ny,...)

{

    va_listarg_ptr;

    inttempValue;

num*=2;

    Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x02);

Usart_SendByte(USART1,Color/256);

Usart_SendByte(USART1,Color%256);

Usart_SendByte(USART1,nx%256);

Usart_SendByte(USART1,ny%256);

    va_start(arg_ptr,ny);

    while(num--)

    {

          tempValue=va_arg(arg_ptr,int);

          Usart_SendByte(USART1,tempValue/256);

Usart_SendByte(USART1,tempValue%256);

    }

 

    va_end(arg_ptr);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************屏幕背光亮度设置*****************/

/*参数:mode:D7********************************/

voidDIM_Set(u8 Set)

{

 

    Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x30);

Usart_SendByte(USART1,Set);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************设置扩展串口波特率**************/

/*参数:mode:D7********************************/

voidBode_Set(u16 Set)//调节扩展串口波特率

{

  Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x38);

Usart_SendByte(USART1,15667200/Set/256);

Usart_SendByte(USART1,15667200/Set%256);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************从扩展串口发送字符串**************/

/*参数:mode:D7********************************/

voidUART_TX(const char *format, ...)//串口发送字符串

{

chartmp[200];

va_listarg;

va_start(arg,format);

vsprintf(tmp,format,arg);

va_end(arg);

  Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x39);

Usart_SendString(USART1,tmp);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************显示ICO图标**************/

/*参数:mode:D7********************************/

voiddis_ico(u16 x,u16 y,u8 mode,u8 ids)//显示ico图标

{

  Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x23);

Usart_SendByte(USART1,x/256);

Usart_SendByte(USART1,x%256);

Usart_SendByte(USART1,y/256);

Usart_SendByte(USART1,y%256);

  Usart_SendByte(USART1,mode);

Usart_SendByte(USART1,ids);

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************设置动态图标*******************/

/*参数:mode:D7********************************/

voiddisd_ico(u16 x,u16 y,u8 mode,u8 Icon_lib,u8 Icon_IDs,u8 Icon_0IDe,u8Delay_time)//显示ico图标

{

  Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x28);

Usart_SendByte(USART1,x/256);

Usart_SendByte(USART1,x%256);

Usart_SendByte(USART1,y/256);

Usart_SendByte(USART1,y%256);

Usart_SendByte(USART1,mode);

Usart_SendByte(USART1,Icon_lib);

Usart_SendByte(USART1,Icon_IDs);

Usart_SendByte(USART1,Icon_0IDe);

Usart_SendByte(USART1,Delay_time);


Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

/****************控制动态图标*******************/

/*参数:mode:D7********************************/

voiddisc_ico(u16 set)//控制ico动态图标

{

  Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x29);


Usart_SendByte(USART1,set/256);

Usart_SendByte(USART1,set%256);

 

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

 

/****************写存储器***********************/

/*参数:mode:D7********************************/

voidwrit_sram_flsh(u16 Length,u8 Type,u16 Address)//写数据存储器

{

  Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x31);

Usart_SendByte(USART1,Type);

Usart_SendByte(USART1,Address/256);

Usart_SendByte(USART1,Address%256);

while(Length--)

{

Usart_SendByte(USART1,Address++);

}

 

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

 

/****************读存储器***********************/

/*参数:mode:D7********************************/

voidpic(u8 id)

{

  Usart_SendByte(USART1,0xaa);

Usart_SendByte(USART1,0x22);

Usart_SendByte(USART1,0x00);

Usart_SendByte(USART1,id);

\

Usart_SendByte(USART1,0xcc);

Usart_SendByte(USART1,0x33);

Usart_SendByte(USART1,0xc3);

Usart_SendByte(USART1,0x3c);

}

 

4.常用功能例程

4.1显示文本和数据

voidLCD_printf(u8 mode,u16 Color,u16 Bcolor,u16 x,u16 y,const char*format, ...);//显示字符串或者变量  

参数mode:

.7字符宽度调整设置1=调整0=不调整。

.6背景色显示设置1=显示0=不显示。

.5-.4写0。.3-.0:字号大小,0x00-0x09,对应字体大小于下:0x00=6*120x01=8*16 0x02=10*20 0x03=12*24 0x04=14*28 0x05=16*32 0x06=20*400x07=24*48 0x08=28*56 0x09=32*64

Color:字符显示颜色。

Bcolor:字符背景显示颜色。

x,y):字符串显示的左上角坐标。

 

例程:LCD_printf(0x42,0xffff,0xf00f,10,10,"2024澳门原料网网站:%04d",x++);

如示例的调用形式将显示“2024澳门原料网网站:x的值的十进制展现形式”

 

4.2绘图类

voidclr(u16 Color);//清屏

color:颜色

voidLinear_interpolation(u8 num,u16 Color,...);// 端点连线

num:点的个数

color:连线的颜色

…:各点坐标

 

例程:Linear_interpolation(3,0xff00,0x0000,0x0000,0x0100,0x0100,0x0100,0x0000);

 

voidPlace_point(u8 num,u16 Color,u16 nx,u16 ny,...);//绘制点

 

 

4.3二维码显示

voiderweima(u16 x,u16 y,u8 QR_Pixel,const char *format, ...);//生成二维码

x,y为二维码左上角坐标。QR_Pixel表示二维码每个点占用的像素点。

…:URL此函数的分钟同样类似printf

 

例程:erweima(148,50,0x04,"");

 

4.4调节背光亮度

voidDIM_Set(u8 Set);//调节背光

set:0x00-0xff

 

例程:DIM_Set(0xff);//调节背光到最亮

 

4.5调节串口波特率

voidBode_Set(u16 Set);//调节扩展串口波特率

set:波特率

例程:Bode_Set(9600);//设置波特率为9600

 

5. 文件下载说明

库函数&头文件及升级说明见压缩文件《单色屏升级:如何快速升级T5UIC1彩屏》,文件获取方式如下:

迪文官网“资料下载”栏目的“应用设计参考”子栏目下载压缩文件包《单色屏升级:如何快速升级T5UIC1彩屏》,即可从中找到有关文件。



(作者/祖晓晨  编辑/孙惠英)




26093f7e62b3418d_html_49ac0cb0319638126093f7e62b3418d_html_330617f798852163

关注迪文及时了解更多产品资讯