|
本帖最后由 雷鹏 于 2021-4-6 08:31 编辑
/*
*********************************************************************************************************
* 函 数 名: DispADInitFace
* 功能说明: 显示初始界面
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
static void DispMainMenuInitFace(void)
{
char DispStr[32];
static char DispChar='A';
uint16_t Pn_x=100;
uint16_t Pn_y=100;
uint16_t font_width;
uint16_t font_height;
uint16_t char_width; /*字符宽度*/
uint16_t i,j;
uint16_t pixel;
uint16_t count=0; /*计数器*/
uint16_t FontData=0; /*字模数据*/
char ProData[]={" !\"#$%&'()*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~"};
//char ProData[]={"ABC"};
uint16_t ProCount=0;
FONT_T tFont; /* 定义一个字体结构体变量,用于设置字体参数 */
/* 设置字体参数 */
{
tFont.FontCode = FC_RA8875_32; /* 字体代码 16点阵 */
tFont.FrontColor = CL_BLACK; /* 字体颜色 */
tFont.BackColor = CL_WHITE; /* 文字背景颜色 */
tFont.Space = 0; /* 文字间距,单位 = 像素 */
}
/*设置读取的高宽*/
switch(tFont.FontCode)
{
case FC_RA8875_24 :
font_width=24;
font_height=24;
Pn_y=Pn_x;
break;
case FC_RA8875_32 :
font_width=32;
font_height=32;
Pn_y=Pn_x;
break;
}
while(ProData[ProCount])
{
DispChar=ProData[ProCount++];
sprintf(DispStr,"%c",DispChar);
LCD_DispStrEx(Pn_x, Pn_x, DispStr, &tFont, 100,ALIGN_LEFT);
printf("\r\n0x%02x,// %c \r\n" ,DispChar,DispChar );
/*读出字体数据*/
/**/
char_width=0;
for(i=0;i<font_height;i++)
{
/*打印字模*/
count=0;
FontData=0;
for(j=0;j<font_width;j++)
{
pixel=LCD_GetPixel(Pn_x+j, Pn_y+i);
if(pixel>100)
{
//printf(".");
}
else
{
FontData=FontData+1;
if(char_width<=j)
char_width++;
}
count++;
if(count==8)
{
count=0;
//printf("0x%02x,",FontData);
FontData=0;
}
else
{
FontData=FontData<<1;
}
}
}
char_width=char_width+1;
printf("0x%02x,//宽度= 0x%02d\r\n",char_width,char_width);
/*读出字体数据*/
/**/
char_width=0;
for(i=0;i<font_height;i++)
{
/*打印字模*/
count=0;
FontData=0;
for(j=0;j<font_width;j++)
{
pixel=LCD_GetPixel(Pn_x+j, Pn_y+i);
if(pixel>100)
{
//printf(".");
}
else
{
FontData=FontData+1;
if(char_width<=j)
char_width++;
}
count++;
if(count==8)
{
count=0;
printf("0x%02x,",FontData);
FontData=0;
}
else
{
FontData=FontData<<1;
}
}
printf("//%02d ",i);
/*打印字模图形*/
for(j=0;j<font_height;j++)
{
pixel=LCD_GetPixel(Pn_x+j, Pn_y+i);
if(pixel>100)
printf(".");
else
printf("@");
}
printf("\r\n");
}
//printf("字模宽度= 0x%02x\r\n",char_width);
printf("\r\n");
//DispChar++; /*自++ 方便下次转换*/
}
}
|
|