CTT117—TFTLCD-2.4寸显示汉字
1.LCD汉字显示是通过汉字取模软件将汉字转换成十六进制二维数组,控制LCD点阵的亮暗显示汉字。
2。这里所用的汉字取模软件是pctolcd2002
3.pctolcd2002的使用:
3. 1.选择模式为字符模式 3.2.选择选项配置 一般配置如图,每行点阵显示数调到最高,可使每行数组表示一个汉字。
3.3.上述配置完成后可在生成字模框中生成字模,并且可以调节字宽与字高,如图
4.代码实现
4.1,LCD驱动中的汉字显示函数(请确保LCD其他配置正确)
//在指定位置显示一个汉字 //x,y:起始坐标 //num:要显示的汉字数组的初始下标 //snum:要显示的汉字个数 //size:字体大小 12/16/24 //mode:叠加方式(1)还是非叠加方式(0) void LCD_ShowChinese2(u16 x,u16 y,u8 num,u8 snum,u8 size,u8 mode) { u8 csize; u8 temp,t1,t,t2; u16 y0=y; csize=(2*(size/8+((size%8)?1:0))*(size/2)); //得到字体一个字符对应点阵集所占的字节数 for(t2=0;t2<snum;t2++) { for(t=0;t<csize;t++) { if(size==12)temp=chinese_12[num+t2][t]; //调用1206字体 else if(size==16)temp=chinese_16[num+t2][t]; //调用1608字体 else if(size==24)temp=chinese_24[num+t2][t]; //调用2412字体 else return; //没有的字库 for(t1=0;t1<8;t1++) { if(temp&0x80)LCD_Fast_DrawPoint(x,y,TextColor); else if(mode==0)LCD_Fast_DrawPoint(x,y,BackColor); temp<<=1; y++; if(y>=TFT_Height)return; //超区域了 if((y-y0)==size) { y=y0; x++; if(x>=TFT_Width)return; //超区域了 break; } } } } }
这里只配置12/16/24字体(即字模的宽高设置请保持一置)
新建字库.h文件把生成的字模数组保存在其中,数组名命名为chinese_24[][80],chinese_16[][80],chinese_12[][80],与驱动中调用字体数组名相同。
数组内容即保存的字模数组。(如图)
5.main()函数调用
只需在while(1)中调用汉字显示函数
6.下载实现
7.程序中并未使用最初的<LCD汉字显示>数组,而是直接使用原先写的<LCD显示>数组,原理相同,学习之后可在字模软件中生成不同汉字,在LCD显示。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用