一、LCD具体格式

//显示字符串
//x,y:起点坐标
//width,height:区域大小
//size:字体大小
//*p:字符串起始地址
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)
{
u8 x0=x;
width+=x;
height+=y;
while((*p<='~')&&(*p>=' '))//判断是不是非法字符!
{
if(x>=width){x=x0;y+=size;}
if(y>=height)break;//退出
LCD_ShowChar(x,y,*p,size,0);
x+=size/2;
p++;
}
}

//显示数字,高位为0,则不显示
//x,y :起点坐标
//num:数值(0~4294967295);
//len :数字的位数
//size:字体大小
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);
}
}

二、举例

int number = 100;
u8 lcd_id;
sprintf((char*)lcd_id,"LCD ID:%04d",number); //将number打印到lcd_id数组。
// (其中,(char*)是将u8类型强制转化为char类型。sprintf存入的数组需要是char类型的,如果写u8,则会出现警告。)
LCD_ShowString(30,110,200,16,16,lcd_id);

三、注意事项

使用LCD,必须初始化包含printf的串口。