找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
ID:776997 发表于 2020-8-7 09:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2. 绘图函数的扩展
要实现绘图功能,首先是添加画点函数,然后是添加画线函数和区域填充函数。
添加的画点函数为:
  1. void LCD_dotDraw(u16 X_Location, u16 Y_Location, u16 Color)
  2. {
  3.     LCD_StarterSet(X_Location, Y_Location);
  4.          LCD_WriteRAMPrior();
  5.          LCD_WriteRAM(Color);
  6. }
复制代码

添加的画线函数为:
  1. void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u16 Color)
  2. {
  3.          u16 t;
  4.          s16 xerr=0,yerr=0,delta_x,delta_y,distance;
  5.          u16 incx,incy,uRow,uCol;
  6.          delta_x=x2-x1;
  7.          delta_y=y2-y1;
  8.          uRow=x1;
  9.          uCol=y1;
  10.          if(delta_x>0)incx=1;
  11.          else if(delta_x==0)incx=0;
  12.          else { incx=-1; delta_x=-delta_x; }
  13.         
  14.          if(delta_y>0)incy=1;
  15.          else if(delta_y==0)incy=0;
  16.          else { incy=-1; delta_y=-delta_y; }
  17.         
  18.          if( delta_x>delta_y) distance=delta_x;
  19.          else distance=delta_y;
  20.         
  21.          for(t=0;t<=distance+1;t++)
  22.          {
  23.                    LCD_dotDraw(uRow,uCol,Color);            
  24.                    xerr+=delta_x ;
  25.                    yerr+=delta_y ;
  26.                    if(xerr>distance)
  27.                    {
  28.                             xerr-=distance;
  29.                             uRow+=incx;
  30.                    }
  31.                    if(yerr>distance)
  32.                    {
  33.                             yerr-=distance;
  34.                             uCol+=incy;
  35.                    }
  36.          }
  37. }
复制代码

添加的区域填充函数:
  1. void LCD_fill(u16 x,u16 y,u16 Height,u16 Width,u16 Color)
  2. {
  3.   u16 i,j;

  4.   for(j=0;j<Height;j++)
  5.   {
  6.          LCD_StarterSet(x,y);
  7.     LCD_WriteRAMPrior();
  8.     for (i = Width; i > 0; i--)
  9.     {
  10.       LCD_WriteRAM(Color);
  11.     }
  12.            x++;
  13.   }
  14. }
复制代码

有了这3个函数,后面我们在进行A/D采集时就可以轻松地实现数据的波形显示,稍后见!

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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