今天在做毕业设计时候,为了让内容显示更加好看,我在考虑使用整点原子探索者显示任意大小汉字,发现正点原子的开发板历程中都是通过SD卡内容读取,而且相对来说比较麻烦,下面介绍一种可以通过数据存储少量汉字的方法。这个方法是借鉴一个博主的方法,但是他的只能固定显示16*16或者24*24的方法,本来想引用下那位博主的文章,但因为扒的文章太多的情况,我也没有找到,非常感谢这位博主的文章。我在这个基础上对函数做了一些修改,可以实现显示任意大小的汉字,但是目前显示的长宽必须相等,不相等的情况我还没尝试过。

首先对PCtoLC2002的设置

目前这个地方需要注意一点,就是字模每行显示数据的设置和在外框中的设计要一样。
首先贴出函数(此函数是我借鉴博主的原版,非常感谢这位博主)

void Test_Show_DESIGNER_Font24(u16 x,u16 y,u8 index,u16 color)
{                   u8 temp,t,t1;u16 y0=y;                  for(t=0;t<72;t++)//每个24*24的汉字点阵 有72个字节{   if(t<24)temp=Designer[index*3][t];           //前24个字节else if(t<48)temp=Designer[index*3+1][t-24]; //中24个字节                              else temp=Designer[index*3+2][t-48];         //后24个字节for(t1=0;t1<8;t1++){if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色)temp<<=1;y++;if((y-y0)==24){y=y0;x++;break;}}    }
}

Designer是我个人命名的二维数组名字,移植时可以进行修改。首先我们对这个函数做一个分析
这是我生成的一组数组,我们首先对这个数组进行一个分析,24*24等于576,总共有72字节的长度。每个字有三行,每行长度是24,所以代码的写法如下

    for(t=0;t<72;t++)//每个24*24的汉字点阵 有72个字节{   if(t<24)temp=SCHOOL_CLASS[index*3][t];           //前24个字节else if(t<48)temp=SCHOOL_CLASS[index*3+1][t-24]; //中24个字节                              else temp=SCHOOL_CLASS[index*3+2][t-48];         //后24个字节for(t1=0;t1<8;t1++)//处理一个字节

所以当我们想将字体编程48乘48大小时,我们可以做一个类比

48乘48 字体每行长度是48,总共六行,总共288字节,所以修改后的代码为:

void Test_Show_title_Font48(u16 x,u16 y,u8 index,u16 color)
{                   u16 temp,t,t1;u16 y0=y;                  for(t=0;t<288;t++)//每个48*48的汉字点阵 有288个字节   需要进行六次判断{   if(t<48)temp=title[index*6][t];           //前48个字节   1else if(t<96)temp=title[index*6+1][t-48]; //48~96个字节          2                    else if(t<144)temp=title[index*6+2][t-96];         //96~144个字节     3else if(t<192)temp=title[index*6+3][t-144];   //4else if(t<240)temp=title[index*6+4][t-192];   //5else if(t<288)temp=title[index*6+5][t-240];   //6for(t1=0;t1<8;t1++){if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色)temp<<=1;y++;if((y-y0)==48){y=y0;x++;break;}}    }
}

因此我们可以通过这个方法对这个函数修改,可以实现任意大小汉字的显示。

顺便写一下图片的显示函数:
关于图片的配置:

注意分辨率的大小需要一样,不然会造成显示的图片混乱问题,后续直接调用以下函数既可。

#define LCD_HEIGHT   800  //此处是你的屏幕分辨率
#define LCD_WIDTH  480
/****************************************************
函数名:LCD_DrawPoint
形参:x,y:坐标
返回值:POINT_COLOR:此点的颜色
函数功能:画点函数
****************************************************/
void LCD_DrawPoint_user(u16 x,u16 y,u16 c)
{    LCD_SetCursor(x,y);        //设置光标位置 LCD_WriteRAM_Prepare();    //开始写入GRAMLCD->LCD_RAM=c;
}
/**************************************************************************
***** 函数名:   LCD_Show_Photo()
***** 功能:     显示指定大小图片
***** 参数:     x0 开始位置,y0开始位置  ,high高度,width 宽度 ,bmp 图片数据数组
***** 返回值:    无
****************************************************************************/
void LCD_Show_Photo(int x0,int y0,int width,int high,const unsigned char photo[])
{int x,y;u32 c;int p = 0;for( y = y0 ; y < (high+y0) ; y++ ){for( x = x0 ; x < (width+x0) ; x++ ){c = photo[p+1] | (photo[p]<<8) ;//竖屏if ( ( (x) < LCD_WIDTH) && ( (y) < LCD_HEIGHT) )//横屏//if ( ( (x) < LCD_HEIGHT) && ( (y) < LCD_WIDTH) )LCD_DrawPoint_user(x,y,c);  p = p + 2 ;}}
}

正点原子4.3寸电容屏显示任意大小汉字以及图片显示相关推荐

  1. STM32F407虚拟键盘--4.3寸电容屏构建思路以及工程代码例程。(免费)

    前言: 第一次利用F407成功编写虚拟键盘,本文章通过分享自己编写程序的思路与步骤的心路历程.该工程讲解清晰,适合新手,其中有很多细节,请读者仔细阅读,工程程序源码放在最后(免费,百度网盘自提). 硬 ...

  2. 【正点原子FPGA连载】第三十九章OV7725摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  3. 单片机设计 游戏_五子棋+黄金矿工+贪吃蛇(STM32、4.3寸电容屏)

    单片机设计 游戏_五子棋+黄金矿工+贪吃蛇(STM32.4.3寸电容屏) 想要更多项目私wo!!! 一.电路设计 此电路由STM32F1精英版和4.3寸电容屏TFTLCD组成. 二.运行效果 三.部分 ...

  4. NUC972-5寸电容屏-linux-drv-chrdevbase

    NUC972-5寸电容屏-linux-drv-chrdevbase drv_chrdevbase.c #include <linux/types.h> #include <linux ...

  5. STM32正点原子TFT-LCD1.3寸(240x240)液晶显示屏移植

    吐槽 屏幕太贵了....40多一块,而且还只有1.3寸.记录本篇的目的是为了我换了更大的屏幕,为了以后需要特此记录. 如何移植 我相信各位都拘泥于库,有人用hal库,有人用标准库等等,万变不离其宗,库 ...

  6. 【正点原子FPGA连载】第四十四章MT9V034摄像头HDMI显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  7. 【正点原子FPGA连载】 第二十四章 RTC实时时钟LCD显示实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  8. FT5X06 如何应用在10寸电容屏(linux-3.5电容屏驱动简析移植10寸电容屏驱动到Android4.2) (by liukun321咕唧咕唧)

    这是几个月以前的东西了,在彻底遗忘之前拿出来好好写写.做个笔记,也算是造福后来人了.在做这个项目之前,没有做过电容屏的驱动,印象中的电容触摸屏是不需要校正的.IC支持多大的屏就要配多大的屏.但是拿到需 ...

  9. STM32 利用cubemx配置正点原子4.3寸TFT-LCD 驱动芯片NT35510

    主控芯片是STM32F103ZET6 利用CUBEMX配置可以省去初始化函数中的初始化GPIO.FSMC和时钟等步骤 原理图 4.3寸的也是通用的 # CUBEMX配置 特别注意,除了配置这些外,还要 ...

最新文章

  1. php非,PHP实现非对称加密
  2. 移植Python2到TQ2440
  3. 2019牛客暑期多校训练营(第十场)
  4. 让不支持h5新标签的浏览器支持新标签
  5. java千万用户实现实时排名_想知道谁是你的最佳用户?基于Redis实现排行榜周期榜与最近N期榜...
  6. 苹果挂端口方法_调音台变身直播声卡的方法
  7. 信奥中的数学:前缀和与差分、大整数开方技巧
  8. 保持进程在Shell退出后能继续运行的方法
  9. php入门案例,thinkphp3.2.1入门之--简单案例实现
  10. 多种富文本编辑器的对比
  11. 自动化运维工具 puppet
  12. 什么是计算机病毒?中国黑客教父告诉你
  13. 抓包工具charles下载安装(破解版)
  14. 冒险岛079单机搭建流程
  15. 如何利用魔棒工具抠图_10秒教你如何用PS魔棒工具抠图
  16. 任正非讲话稿400篇_重磅干货丨任正非讲稿400篇(1994—2018)
  17. java实现中国象棋 源代码
  18. CSV文件用Excel打开各种问题
  19. 免费全平台直播推流软件OBS Studio应用
  20. CentOS7安装OpenStack(Rocky版)-02.安装Keyston认证服务组件(控制节点)

热门文章

  1. 现代控制理论输出y_现代控制理论-3
  2. 骁龙870和麒麟980哪个好 骁龙870和麒麟980对比哪个更强
  3. Linux游戏产业迎来新曙光
  4. 由正则表达式提取 html action的属性值,谈零宽断言
  5. 3D小游戏——3D版俄罗斯方块
  6. 如何入门网络安全_网络安全自学
  7. 22 款终端生产力工具,效率飞起!
  8. 3dmax:3dmax三维VR渲染设置之高级灯光渲染(常规参数设置—灯光类型、阴影贴图、区域阴影、强度颜色衰减、衰退、远距衰减、聚光灯参数、大气和效果mental ray间接照明)图文教程之详细攻略
  9. 现代人的焦虑症或许根源在于网络社交过于频繁!?
  10. 【介绍】好用的网页查词插件(greasy fork 插件):iciba划词翻译