找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1722|回复: 0
打印 上一主题 下一主题
收起左侧

ESK32-360开发板TFT屏显示功能及扩展(1)

[复制链接]
跳转到指定楼层
楼主
本帖最后由 jinglixixi 于 2020-7-31 10:05 编辑

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, u16Y_Location, u8 Height, u16 Width, uc8 *Pptr); // 图片显示函数
void LCD_LineDraw(u32 X_Location, u32Y_Location, u32 Length, u32 Direction);   // 直线绘制函数
void LCD_CircleDraw(u32 X_Location, u32Y_Location, u32 Radius);               //圆绘制函数
void LCD_RectDraw(u32 X_Location, u32Y_Location, u32 Height, u32 Width);      // 矩形绘制函数

那我们还需要补充哪些显示函数呢 ?
1)数值显示函数,在进行数据显示时要单纯靠调用字符显示函数来实现是非常不便的;
2)画点函数,它是其它图形绘制函数的基础;
3)画线函数,虽说例程中提供了画线函数,但它是解决简单的水平线或垂直线的,无法用其来绘制波形曲线;
4)区域填充函数,以解决窗口内波形曲线的擦除;
5)汉字显示函数,在配置相应中文字库的条件下,实现专用汉字的显示。

通过对例程的学习和分析,所增添的数值显示函数为:
  1. uint32_t LCD_Pow(char m,char n)
  2. {
  3.         uint32_t result=1;         
  4.         while(n--)result*=m;   
  5.         return result;
  6. }

  7. void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len)
  8. {                 
  9.         u8 t,temp;
  10.         u8 enshow=0;
  11.         for(t=0;t<len;t++)
  12.         {
  13.                 temp=(num/LCD_Pow(10,len-t-1))%10;
  14.                 if(enshow==0&&t<(len-1))
  15.                 {
  16.                         if(temp==0)
  17.                         {
  18.                                 LCD_CharDisplay(x, y+14*t, ' ');
  19.                                 continue;
  20.                         }else enshow=1;
  21.                           
  22.                 }
  23.                  LCD_CharDisplay(x, y+14*t, temp+'0'); //LCD_CharDisplay(x+16*t, y, temp+'0');
  24.         }
  25. }
复制代码

在运行如下的主程序后,可得到图3所示的效果。
  1. int main(void)
  2. {
  3.   LCD_Init();
  4.   LCD_Config();
  5.   LCD_Clear(0x2c5c);
  6.   LCD_BackColorSet(0x2c5c);
  7.   LCD_TextColorSet(Yellow);
  8.   LCD_StringLineDisplay(Line3, "       Holtek       ");
  9.   LCD_StringLineDisplay(Line4, "     HT32 Series    ");
  10.   LCD_StringLineDisplay(Line5, "     LCD Example    ");
  11.   
  12.   LCD_ShowNum(Line7,100,1234567890,10);  
  13.   while (1);
  14. }
复制代码


图3 数值显示


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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表