当前位置: 首页 > news >正文

stm32驱动TFTLCD液晶屏显示图片+汉字(快速上手,只教怎么用,不讲原理!)

这几天在学STM32,基于正点原子开发板和视频教程,TFTLCD能显示字符和汉字,但是原子哥没有提供显示图片的例程,有一个搭边的,但是基于SD卡的,所以索性自己写了一个显示图片的函数

其实显示字符和汉字是通过点阵的方式来实现的,显示图片也是一个道理,要将图片转成点阵
其中一些地方是参考这位大佬的----还有这位大佬

软件准备:

keil5

硬件准备:

stm32板子
TFTLCD屏幕

步骤:

在套用我这个代码前,你首先的保证你的代码能在TFTLCD屏幕上显示字符,数字那些,不然直接复制代码也没用,其实直接打开原子哥的例程就行了。
1.首先得找到一张图片,我这个图片随便在网上找的
2.然后使用Image2Lcd软件取模变成数组
3.根据我图片的步骤来,记得要记得第四步的东西

在这里插入图片描述

4.点击保存会弹出一个几十倍,里面全是数组,我们复制下来,随便找个地方复制到keil5上,先实现功能,再加入.h里面就完事,我这里直接放在main.c,这个数组有1W多行,是正常的,其实这些就是像素点,我们一点一点轮询的描点就行了。

在这里插入图片描述

在这里插入图片描述
4.然后写上这个函数,参数的作用是什么,已经写的很清楚了
5.主函数这样调用就完事,然后烧录

在这里插入图片描述
6.效果图
在这里插入图片描述

下面来实现显示中文字符

LCD显示汉字结果展示:
在这里插入图片描述

取模软件的使用(PCtoLCD2002完美版)

  1. 打开软件,点击菜单栏【选项】,打开字模选项

    勾选阴码点阵、逐列式取模、顺向(高位在前,低位在后)、C51格式
    具体看我下面的图就行
    在这里插入图片描述
    在这里插入图片描述
    我这里是放在lcd.c里面,你们可以建个.h文件存放,看个人习惯,这个不重要
    在这里插入图片描述

汉字显示函数代码,将这个代码复制到lcd.c里面

void Chinese_Show_one(u8 x, u8 y, u8 num, u8 size, u8 mode)
{
    u8 temp,t,t1;
    u8 y0=y;
    u8 csize=(size/8 + ((size%8)?1:0)) * size;     //     16/8+1
    for(t=0;t<csize;t++)
    {  
        if(size==16)     
					temp = chinese[num][t];     
        else 
					return;      
        for(t1=0;t1<8;t1++)
        {
            if(temp&0x80) 
							LCD_Fast_DrawPoint(x,y,POINT_COLOR);
            else 
							LCD_Fast_DrawPoint(x,y,BACK_COLOR);
            temp<<=1;
            y++;
            if((y-y0)==size)
            {
                y=y0;
                x++;
                break;
            } 
         }  
     }  
}


然后在主函数调用就完事啦

在这里插入图片描述

相关文章:

  • 神经网络参数研究方法,神经网络参数研究方向
  • JS常用事件,使用方法
  • 2022“杭电杯” 中国大学生算法设计超级联赛(7)3 8 题解
  • 雪地脚印 体积云
  • 解决WindowsServer上的Web应用程序无法访问网络共享文件问题
  • keepalived+nginx高可用
  • windows10下安装Mujoco 详细安装教程 + 附安装包
  • PostgreSQL模式匹配和正则表达式
  • 区块相隔虽一线,俱在支付同冶熔,Vue3.0+Tornado6前后端分离集成Web3.0之Metamask区块链虚拟三方支付功能
  • Linux下安装PostgreSQL
  • 【JavaScript】鼠标、键盘的基础事件
  • 【Reinforcement Learning】AlphaGo 如何使用的强化学习?
  • java计算机毕业设计小型企业财务报销管理源码+系统+数据库+lw文档+mybatis+运行部署
  • java计算机毕业设计小型企业员工工资管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  • 《LC刷题总结》——动态规划
  • __proto__ 和 prototype的关系
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • android 一些 utils
  • django开发-定时任务的使用
  • ES6简单总结(搭配简单的讲解和小案例)
  • Fundebug计费标准解释:事件数是如何定义的?
  • gitlab-ci配置详解(一)
  • JavaScript 基本功--面试宝典
  • MySQL用户中的%到底包不包括localhost?
  • scrapy学习之路4(itemloder的使用)
  • spring + angular 实现导出excel
  • 闭包--闭包作用之保存(一)
  • 编写符合Python风格的对象
  • 简单易用的leetcode开发测试工具(npm)
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 小李飞刀:SQL题目刷起来!
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​TypeScript都不会用,也敢说会前端?
  • #include<初见C语言之指针(5)>
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (14)Hive调优——合并小文件
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (初研) Sentence-embedding fine-tune notebook
  • (六)Hibernate的二级缓存
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (一)Java算法:二分查找
  • (一)Linux+Windows下安装ffmpeg
  • .NET delegate 委托 、 Event 事件
  • .Net MVC + EF搭建学生管理系统
  • .NET Remoting学习笔记(三)信道
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 服务 ServiceController
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • /var/spool/postfix/maildrop 下有大量文件
  • [AX]AX2012 SSRS报表Drill through action
  • [BZOJ 1040] 骑士
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算
  • [C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!