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);
}
}
- 未完待续
- 后面写触摸屏部分,我也没学,边学边写
- 不出意外是电阻屏