LCD屏幕调试 ~ 字模提取工具和图片转码工具

字模提取

工具资源下载:
链接:https://pan.baidu.com/s/1BF8lJLmM-V-vWrl2F6Cd7Q?pwd=mx1y
提取码:mx1y

使用方法:
1.打开软件中的PCtoLCD2002.exe
2.点击顶端的 “选项” 按钮
3.进行如下设置

  • 点阵格式(取模时候字体的点,用1还是用0)
  • 取模走向(决定取模时,靠左/靠上的点是高位还是低位)
  • 自定义格式(一般选择C51)
  • 取模方式(和取模走向共同决定取模的数据走向)
    /一般要删除“行前缀”和“行后缀”里的两个大括号/
    在这里插入图片描述
    4.选择字形,并输入内容生成字模
    在这里插入图片描述
    5.将保存的字模文件中的数据复制出来,添加到我们的代码中。
    格式类似如下,部分地方适情况修改。例:
    在这里插入图片描述
    6.(此项按照个人情况参考)将提取后的字模用于STM32F401开发板
    代码 .c .h文件下载参考:

链接:https://pan.baidu.com/s/1Zu-kVByL_ny9RFGOgvUTaA?pwd=j4tl
提取码:j4tl
首先:在Keil uVision5中新建一个.c结尾的文件,专门存放我们与lcd有关的函数
以下展示部分主要函数:

/*
**********************************************************************
画点函数
**********************************************************************
*/

void LCD_DrawPoint(u16 x,u16 y,u16 color)
{
	st7789vm_PostionSet(x,y,x,y);
	st7789vm_write_Data(color);

}

/*
**********************************************************************
图片显示
**********************************************************************
*/

void Display_Pic(u16 x,u16 y,u8 *pic)
{
	u16 i;
	u16 w;
	u16 h;
	w = pic[2] << 8 | pic[3];
	h = pic[4] << 8 | pic[5];
	st7789vm_PostionSet(x,y,x+w,y+h);
	for(i=0;i<w*h;i++)
	{
		st7789vm_write_Data(pic[8+i*2] << 8| pic[8+i*2+1]);
	}
	
}

/*
**********************************************************************
显示一个字符
**********************************************************************
*/


void Single_Char_Display(u16 x,u16 y,u16 font_color,u16 bg_color,u16 size,u8 *eng)
{
	u8 i,j;
	if(size == 16)
	{
			for(i=0;i<16;i++)//确定字符有多少行
		{
			for(j=0;j<8;j++)//确定一行里有多少位
			{
				if(eng[i] & 0x80 >> j)
				{
					LCD_DrawPoint(x + j,y + i,font_color);
				}
				else
				{
					LCD_DrawPoint(x + j,y + i,bg_color);
				}
			}
			
		}
	}
	else if(size == 24)
	{
		u32 buf;
		for(i=0;i<24;i++)//确定字符有多少行
		{
			buf = eng[i*2] << 8 | eng[i*2 + 1];
			for(j=0;j<16;j++)//确定一行里有多少位
			{
				if(buf & 0x8000 >> j)
				{
					LCD_DrawPoint(x + j,y + i,font_color);
				}
				else
				{
					LCD_DrawPoint(x + j,y + i,bg_color);
				}
			}
			
		}
	}
	
	
}

/*
**********************************************************************
显示一个汉字
**********************************************************************
*/
void Single_Chi_Display(u16 x,u16 y,u16 font_color,u16 bg_color,u16 size,u8 *eng)
{
	u16 i,j;
	u32 buf;
		for(i=0;i<32;i++)//确定字符有多少行
		{
			buf = eng[i*4] << 24 | eng[i*4 + 1] << 16 | eng[i*4 + 2] << 8 | eng[i*4 + 3];
			for(j=0;j<32;j++)//确定一行里有多少位
			{
				if(buf & 0x80000000 >> j)
				{
					LCD_DrawPoint(x + j,y + i,font_color);
				}
				else
				{
					LCD_DrawPoint(x + j,y + i,bg_color);
				}
			}
			
		}
}

其次:再新建一个.h结尾的函数,专门申明和定义我们的 lcd.c 里的函数
最后:在主函数中调用显示文字的函数,并赋上基础值。
例:

st7789vm_init();
*//*
Single_Char_Display(0,0,0x0000,0xffff,16,eng);
Single_Char_Display(0,16,0x0000,0xffff,24,eng24);
Single_Chi_Display(0,48,0x0000,0xffff,32,chi);

图片转码

工具资源下载:
图片转码 链接:https://pan.baidu.com/s/1W339tTGl-TkKyv9sEZsCdg?pwd=mmrp
提取码:mmrp

GIF分解工具 链接:https://pan.baidu.com/s/1OmOT1ZurG0C-ZjBCJbJDgg?pwd=wlzi
提取码:wlzi

使用方法:

1.直接导入图片(如果导入的图片有问题,可以选择其他的文件格式。亲测 jpg 格式可用)
在这里插入图片描述
2.按个人需求调整扫描模式、输出灰度、图片尺寸(注意是否勾选了 “高位在前” 的选项)
3.保存扫描并转码后的文件(图片和字符相比,数据大太多。ctrl+A全选再使用吧)
4.(此项按照个人情况参考)将提取后的字模用于STM32F401开发板

代码 .c .h文件下载参考:
链接:https://pan.baidu.com/s/1RdQOoJZDm_mw-bldfENCsQ?pwd=anfe
提取码:anfe

首先:在Keil uVision5中新建一个.c结尾的文件,专门存放我们与lcd有关的函数
以下展示部分主要函数:

lcd.c

/*
**********************************************************************
画点函数
**********************************************************************
*/

void LCD_DrawPoint(u16 x,u16 y,u16 color)
{
	st7789vm_PostionSet(x,y,x,y);
	st7789vm_write_Data(color);

}

/*
**********************************************************************
图片显示
**********************************************************************
*/

void Display_Pic(u16 x,u16 y,u8 *pic)
{
	u16 i;
	u16 w;
	u16 h;
	w = gImage_123123[2] << 8 | gImage_123123[3];
	h = gImage_123123[4] << 8 | gImage_123123[5];
	st7789vm_PostionSet(x,y,x+w,y+h);
	for(i=0;i<w*h;i++)
	{
		st7789vm_write_Data(gImage_123123[8+i*2] << 8| gImage_123123[8+i*2+1]);
	}	
	
}

其次:新建一个bmp.c的文件,存放我们导出来的图片数据
再次:再新建两个.h结尾的函数,分别申明和定义我们的 lcd.c和 bmp.c 里的函数
最后:在主函数中调用显示文字的函数,并赋上基础值。

例:

st7789vm_init();
*//*
Display_Pic(0,0,(u8 *)gImage_123123);
  • 14
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1。界面采用新的字体,不会再有那种难看的黑色粗体字,比以前的要漂亮多了。 2。加入全面的提示帮助,尽量减少普通用户的各种疑惑。 3。修正生成文件的扩展名的一些BUG,不会总是加上FON的扩展名了。 4。修正生成字模数据的一些格式BUG,现在生成的C51格式字模数据基本上可以直接粘贴到源程序中使用而不需要修改了 5。加入新的字模数据格式调整项,允许用户更自由的定制自己需要的数据格式 6。最重要的更新:全面支持保存当前设置功能,用户设置的字模格式,主窗口状态和字库生成窗口选项信息均可保存,下一次打开窗口时不用重新设置。 7。修正了新建图象时会自动跳到图形模式的BUG 8。增加输出紧凑格式数据选项,可以生成不包含空白行的字模数据。 9。完善了每行数据显示个数的功能,可以任意设置每行显示的数据个数,并同时可以设置每行索引数据显示个数。 10。修正了取模说明的一些错误,并改动了格式。 11。现在当用户选择10进制输出时,会自动去掉生成字模数据前的“0x",或后面的“H”,选择16进制时则会自动加上。 12。对各个窗体重新设计以全面适应最大化的需要,如果您觉得当前窗口不够大,可以最大化使用。 13。增加生成英文点阵字库功能,可自动生成ASCII码从0-127的任意点阵字库,使用方法同生成国标点阵字库功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值