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
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
。打开功能是专门用于对C语言文件自动提取显示所需要的汉字,进行点阵码数据转换的, 在您的C语言程序中,有一点需要特别留意:您的注解中请不要使用双引号,否则会引起 提取错误。 软件包中的文件ee.c作为一个简单例程供提取测试用。 2。提取以后的点阵码可以随意修改点阵数据,使用鼠标的左键为加一点,右键为擦除一点。 修改完毕请按旁边的确认键将数据记录到点阵码中,否则您的修改将自动放弃。 3。点阵码可以随意平移,请谨慎使用。平移之前请查看一遍所有的字符点阵图,平移有可能 会丢失边界点,移出了边界的点阵将被丢弃,不可恢复。 平移前请确认是否有必要进行全体字符一起移动。 4。用户自定义特殊字符的建立,首先选定点阵数据,在下面的汉字输入窗口输入几个您不使 用的汉字,确认。然后生成了这些汉字的点阵码,再将他们清空(使用平移按钮中间的那 块抹布),就可以用鼠标描绘你的图案了,最后别忘了打“确认”键。 5。ASCII字符可以自动提取0x20~0x7f的全部,最后一个0x7f一般都没有用,可以手工将它删 除,也可以利用它做一个简单的特殊字符。 汉字库中也包含有ascii字符,但是经查对与这三个ascii库基本一样,所以就不再重复。 6。保存文件:C语言格式的默认为.h类型,汇编格式的默认为.inc类型,只要将他们加入到 您的工程中就可以了。 7。新增加了自动添加下划线功能。这项功能在做点阵显示和修改的时候并不出现下划线, 设置了以后仅仅在最后的输出文件中出现,以免干扰编辑修改。 8。扩充对windows汉字的直接提取,从16~96范围内可以任意设定选取。主要用于制作界面的 开机封面少量标识性汉字。 9。扩充了对ascii小字库5x8以及大字库20*40/24*48的支持,毕竟字库文件比较工整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值