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);

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值