标题: ESK32-360开发板TFT屏显示功能及扩展(2) [打印本页]

作者: jinglixixi    时间: 2020-8-7 09:43
标题: ESK32-360开发板TFT屏显示功能及扩展(2)
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采集时就可以轻松地实现数据的波形显示,稍后见!






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1