365|2

446

帖子

0

资源

一粒金砂(高级)

【ESK32-360测评】+ TFT屏显示功能及扩展(2)

2. 绘图函数的扩展

要实现绘图功能,首先是添加画点函数,然后是添加画线函数和区域填充函数。

添加的画点函数为:

void LCD_dotDraw(u16 X_Location, u16 Y_Location, u16 Color)
{
         LCD_StarterSet(X_Location, Y_Location);
         LCD_WriteRAMPrior();
         LCD_WriteRAM(Color);
}

添加的画线函数为:

void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u16 Color)
{
         u16 t;
         s16 xerr=0,yerr=0,delta_x,delta_y,distance;
         u16 incx,incy,uRow,uCol;
         delta_x=x2-x1; 
         delta_y=y2-y1;
         uRow=x1;
         uCol=y1;
         if(delta_x>0)incx=1; 
         else if(delta_x==0)incx=0;
         else { incx=-1; delta_x=-delta_x; }
        
         if(delta_y>0)incy=1;
         else if(delta_y==0)incy=0;
         else { incy=-1; delta_y=-delta_y; }
        
         if( delta_x>delta_y) distance=delta_x;
         else distance=delta_y;
        
         for(t=0;t<=distance+1;t++)
         { 
                   LCD_dotDraw(uRow,uCol,Color);            
                   xerr+=delta_x ;
                   yerr+=delta_y ;
                   if(xerr>distance)
                   {
                            xerr-=distance;
                            uRow+=incx;
                   }
                   if(yerr>distance)
                   {
                            yerr-=distance;
                            uCol+=incy;
                   }
         } 
}

添加的区域填充函数:

void LCD_fill(u16 x,u16 y,u16 Height,u16 Width,u16 Color)
{
  u16 i,j;
 
  for(j=0;j<Height;j++)
  {
    LCD_StarterSet(x,y);
    LCD_WriteRAMPrior();
    for (i = Width; i > 0; i--)
    {
      LCD_WriteRAM(Color); 
    }
    x++;
  }
}

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


回复

326

帖子

0

资源

一粒金砂(中级)

可以尝试移植个littlevgl呀,有画点函数了就够了

点评

以前接触的不多,后面了解一下。  详情 回复 发表于 2020-8-7 16:08

回复

446

帖子

0

资源

一粒金砂(高级)

宋元浩 发表于 2020-8-7 09:55 可以尝试移植个littlevgl呀,有画点函数了就够了

以前接触的不多,后面了解一下。


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

关闭
站长推荐上一条 1/6 下一条

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

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

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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