LCD显示屏常用函数总结(仅显示,不含触控)

时间:2024-11-20 07:48:10

LCD显示屏常用函数总结(仅显示,不含触控)

  • size
  • 清屏函数
  • 画方块
  • 显示字符
    • 1
    • 2
    • 显示数字的函数
    • 1,高位为0时不显示
    • 2,高位为0时依旧显示

size

LCD的size有三种可选:12——1206编码,16——1608,24——2412

清屏函数

void LCD_Clear(u16 color)

画方块

//在指定区域内填充指定颜色块
//(sx,sy),(ex,ey):填充矩形对角坐标,区域大小为:(ex-8x+l)*(ey-sy+1)
//color:要填充的颜色
void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color)
{
	u16 height,width;
	u16 i,j;
	width=ex-sx+1; 			//宽度
	height=ey-sy+1;			//高度
	for(i=0;i<height;i++)
	{
		LCD_SetCursor(sx,sy+i);
		LCD_WriteRAM_Prepare();
		for(j=0;j<width;j++)
			LCD->LCD_RAM=color[i*width+j];
	}
}

显示字符

1

void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)

width和height为显示范围的长宽,size同样是12/16/24三种选择,*p通常用变量取地址“eg:&a”

2

void Show_Str(u16 x,u16 y,u16 width,u16 height,u8*str,u8 size,u8 mode)

这个函数在里面,作用:在指定位置开始显示一个字符串,支持自动换行,(x,y)是起始坐标,width,height是区域,str:字符串,size :字体大小,mode=0是非叠加方式、mode=1,叠加方式
在这里插入图片描述

在这里插入图片描述

显示数字的函数

//x,y:起点坐标
//num:数值(0~999999999);
//len:长度(即要显示的位数)
//size:字体大小
//mode://[7]:0,不填充;1,填充0.
//[6:1]:保留
//[0]:0,非叠加显示;1,叠加显示.

1,高位为0时不显示

void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size)
{
	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_ShowChar(x+(size/2)*t,y,' ',size,0);
		continue;
	}
	else 
		enshow=1;
	}
	LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,0);
	}
}

2,高位为0时依旧显示

void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode)
{
	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)
			{
				if(mode&0X80)
					LCD_ShowChar(x+(size/2)*t,y,'0',size,mode&0X01);
				else
					LCD_ShowChar(x+(size/2)*t,y,' ',size,mode&0X01);
				continue;
			}
			else 
				enshow=1;
		}
		LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,mode&0X01);
	}
}
  • 未完待续
  • 后面写触摸屏部分,我也没学,边学边写
  • 不出意外是电阻屏