RA8889/RA8876显示自定义汉字字符方法

本文介绍用户自己生成的汉字字库如何通过RA8889/RA8876显示到液晶屏上。

实例效果图:

在这里插入图片描述
汉字字库通过第三方软件生成,点阵是从右到右排列,左高位排法,网上有许多软件可用,这边就不再列举。

汉字表如下,可根据需求量生成,而不是全部几千上万个汉字,这种方法占用的空间比较小,汉字表是存放在MCU的FLASH中的:

// ------------------  汉字字模的数据结构定义 ------------------------ //
typedef struct                 // 汉字字模数据结构
{
       signed char Index[2];              // 汉字内码索引
       char Msk[72];                      // 点阵码数据
}typFNT_GB24;

/
// 汉字字模表                                                          //
// Font:宋体24,,横向取模左高位,数据排列:从左到右从上到下               //
/
typFNT_GB24 code_GB_24[] =        // 数据表
{
"苏", 0x00,0x00,0x00,0x00,0x82,0x00,0x00,0x83,
      0x00,0x00,0x83,0x08,0x7F,0xFF,0xFC,0x00,
      0x83,0x00,0x00,0x83,0x00,0x00,0xB3,0x00,
      0x00,0x30,0x00,0x00,0x30,0x00,0x1F,0xFF,
      0xE0,0x00,0x20,0xC0,0x00,0x20,0xC0,0x00,
      0x20,0xC0,0x08,0x60,0x98,0x08,0x40,0x8C,
      0x18,0x40,0x8C,0x30,0x80,0x84,0x01,0x80,
      0x80,0x01,0x01,0x80,0x06,0x1D,0x80,0x08,
      0x07,0x00,0x10,0x00,0x00,0x00,0x00,0x00,

"州", 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x10,0x03,0x00,0x18,0x03,0x04,0x10,0x02,
      0x04,0x10,0x02,0x04,0x10,0x02,0x04,0x10,
      0x02,0x04,0x10,0x02,0x45,0x10,0x12,0x44,
      0x90,0x12,0x24,0xD0,0x32,0x24,0xD0,0x32,
      0x24,0x10,0x02,0x04,0x10,0x02,0x04,0x10,
      0x06,0x04,0x10,0x04,0x04,0x10,0x04,0x04,
      0x10,0x08,0x04,0x10,0x08,0x04,0x10,0x10,
      0x00,0x10,0x20,0x00,0x18,0x40,0x00,0x00
}; 
程序流程图:

字库表只是点阵,有笔画的点为1,没有笔画的点为0,8个点为一个字节,通过RA8889/RA8876的图形加速功能,将每位延展出一个RGB像素点:
在这里插入图片描述

演示代码:
int main(void)
{
	/* System Clocks Configuration */
	RCC_Configuration(); 
	delay_init(72);  
	GPIO_Configuration();	
	//NVIC_Configuration();	
	//SPI_Peripheral_Init();
 
	/* Enable the FSMC Clock */
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
	delay_ms(1);
	FSMC_LCD_Init_H();	

	/*RA8889初始化*/
	RA8889_Initial();
	
	/*清屏,填充黑色0x0*/
	BTE_Solid_Fill(0,canvas_image_width,0,0,0x0,LCD_Width,LCD_Height);
	
	/*MCU写入GB2312汉字 功能例程测试*/
	User_Font_Init(0,canvas_image_width,0,color65k_white,color65k_blue);
	Show_User_Font_32(code_GB_32,200,100,"苏州菱致电子有限公司");
	User_Font_Init(0,canvas_image_width,1,color65k_green,color65k_blue);
	Show_User_Font_24(code_GB_24,320,150,"瑞佑科技");
	User_Font_Init(0,canvas_image_width,1,color65k_yellow,color65k_blue);
	Show_User_Font_16(code_GB_16,280,200,"提供专业的液晶显示方案");

	while(1);
}

RA8889/RA8876系列芯片是具有图形加速功能的,这种方法显示汉字的速度很快!同时可指定汉字的前景色和背景色。

延伸应用:

这种方法可以做各种单色的ICON,可以指定颜色,非常灵活!

下载链接:

点击下载源代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值