3403|2

1510

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【ESK32-360测评】+ TFT屏显示功能及扩展(1) [复制链接]

  本帖最后由 jinglixixi 于 2020-7-29 08:13 编辑

1. 显示功能的初步扩展

在ESK32-360开发板上,配置了TFT显示屏,通过它可以显示字符、图形及图片等。

该显示屏的接口电路如图1所示,它是由CN3连接器来与开发板连接的,所占用的引脚如图2所示。

 

图1 显示屏接口电路

 

图2 显示屏引脚占用

 

在软件方面,例程也提供了相对完整的显示函数,但也有一些功能尚需增添和补充。

首先我们来看一下其提供显示函数,他们有:

void LCD_Init(void);                                  // 初始化函数

void LCD_Config(void);                             // 引脚配置函数

void LCD_Clear(u16 Color);                     // 以色彩清除屏幕函数

void LCD_BackColorSet(u16 Color);     // 设置背景色

void LCD_TextColorSet(u16 Color);      // 设置前景色

void LCD_CharDisplay(u32 Line_Num, u32 Column, u32 Ascii);    // 字符显示函数

void LCD_StringLineDisplay(u32 Line_Num, char *Sptr);               // 字符串显示函数

void LCD_PicDraw(u8 X_Location, u16 Y_Location, u8 Height, u16 Width, uc8 *Pptr); // 图片显示函数

void LCD_LineDraw(u32 X_Location, u32 Y_Location, u32 Length, u32 Direction);        // 直线绘制函数

void LCD_CircleDraw(u32 X_Location, u32 Y_Location, u32 Radius);                                 // 圆绘制函数

void LCD_RectDraw(u32 X_Location, u32 Y_Location, u32 Height, u32 Width);              // 矩形绘制函数

 

那我们还需要补充哪些显示函数呢 ?

1)数值显示函数,在进行数据显示时要单纯靠调用字符显示函数来实现是非常不便的;

2)画点函数,它是其它图形绘制函数的基础;

3)画线函数,虽说例程中提供了画线函数,但它是解决简单的水平线或垂直线的,无法用其来绘制波形曲线;

4)区域填充函数,以解决窗口内波形曲线的擦除;

5)汉字显示函数,在配置相应中文字库的条件下,实现专用汉字的显示。

 

通过对例程的学习和分析,所增添的数值显示函数为:

uint32_t LCD_Pow(char m,char n)
{
	uint32_t result=1;	 
	while(n--)result*=m;    
	return result;
}

void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len)
{         	
	u8 t,temp;
	u8 enshow=0; 
	for(t=0;t<len;t++)
	{
		temp=(num/LCD_Pow(10,len-t-1))%10;
		if(enshow==0&&t<(len-1))
		{
			if(temp==0)
			{
				LCD_CharDisplay(x, y+14*t, ' ');
				continue;
			}else enshow=1; 
		 	 
		}
	 	LCD_CharDisplay(x, y+14*t, temp+'0'); 
	}
}

 

在运行如下的主程序后,可得到图3所示的效果。

int main(void)
{
  LCD_Init();
  LCD_Config();
  LCD_Clear(0x2c5c); 
  LCD_BackColorSet(0x2c5c);
  LCD_TextColorSet(Yellow);
  LCD_StringLineDisplay(Line3, "       Holtek       ");
  LCD_StringLineDisplay(Line4, "     HT32 Series    ");
  LCD_StringLineDisplay(Line5, "     LCD Example    ");
  
  LCD_ShowNum(Line7,100,1234567890,10);  
  while (1);
}

 

图3 数值显示

 

这样在遇到数值显示的地方,就可以轻松地实现了。后面还会继续补充和完善函数的添加,请继续关注。

最新回复

谢谢分享   详情 回复 发表于 2021-4-18 18:11
点赞 关注(1)
 
 

回复
举报

661

帖子

0

TA的资源

纯净的硅(初级)

沙发
 

谢谢分享

 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表