赞
踩
这几天在学STM32,基于正点原子开发板和视频教程,TFTLCD能显示字符和汉字,但是原子哥没有提供显示图片的例程,有一个搭边的,但是基于SD卡的,所以索性自己写了一个显示图片的函数
其实显示字符和汉字是通过点阵的方式来实现的,显示图片也是一个道理,要将图片转成点阵
keil5
stm32板子
TFTLCD屏幕
在套用我这个代码前,你首先的保证你的代码能在TFTLCD屏幕上显示字符,数字那些,不然直接复制代码也没用,其实直接打开原子哥的例程就行了。
1.首先得找到一张图片,我这个图片随便在网上找的
2.然后使用Image2Lcd软件取模变成数组
3.根据我图片的步骤来,记得要记得第四步的东西
4.点击保存会弹出一个几十倍,里面全是数组,我们复制下来,随便找个地方复制到keil5上,先实现功能,再加入.h里面就完事,我这里直接放在main.c,这个数组有1W多行,是正常的,其实这些就是像素点,我们一点一点轮询的描点就行了。
4.然后写上这个函数,参数的作用是什么,已经写的很清楚了
5.主函数这样调用就完事,然后烧录
6.效果图
LCD显示汉字结果展示:
打开软件,点击菜单栏【选项】,打开字模选项
勾选阴码点阵、逐列式取模、顺向(高位在前,低位在后)、C51格式
具体看我下面的图就行
我这里是放在lcd.c里面,你们可以建个.h文件存放,看个人习惯,这个不重要
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;
}
}
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。