本文将介绍STM32F103R6如何在LCD12864上显示文字图片
注:本文中用到的字模软件,我放在了文章末尾,点击链接即可下载,是绿色版软件,解压即可使用!
点击下载LCD12864上显示文字图片完整工程
液晶屏,LCD12864有128*64个像素点
一、如何在LCD上显示一行字符串?
- 首先找到液晶屏驱动文件LQ12864.c
- LQ12864.c文件中的LCD_P6x8Str()函数就是用来打印字符串的
- 对void LCD_P6x8Str(unsigned char x,unsigned char y,unsigned char ch[])进行解释:
unsigned char x //x坐标,以像素点为单位
unsigned char y //y坐标,以行为单位
unsigned char ch[] //打印到屏幕上的字符串 - 例:在屏幕上打印“hello world”
LCD_P6x8Str(0,0,"hello");//x坐标0 第0行打印 "hello"
LCD_P6x8Str(10,3,"world");//x坐标10,第3行打印 "world"
5. LCD_P6x8Str()这个函数中的6x8的意思是,将行宽为6个像素点,列宽为8个像素点的区域作为一个字符的输出区域
6. 例:for循环的嵌套实现如下的3行5列“#”阵
#####
#####
#####
用到的函数:
//外循环循环3次,内循环循环5次
for(i = 0; i < 3; i++)//控制行 i代表 y坐标
{
for(j = 0; j < 5; j++)//控制列 j代表 x坐标
{
LCD_P6x8Str(20+j*6,i,“#”);//jx6是字符的宽度,x坐标以像素点为单位
}
-
解释为什么是i代表y坐标,j代表x坐标:
如图所示,就是LCD的打印方向,每打印一行,横坐标也就是j会移动5次,所以i代表y坐标,j代表x坐标。 -
解释20+j*6:
20是让第20个像素点作为开始位置,jx6是一个“#”在x轴方向占用6个像素点,为了打印的字符不重叠,每隔j*6个像素点打印一个字符
二、如何自LCD上显示中文
- 这里用到了字模生成软件
就是图中的软件 - 配置好用到的一些参数
这样“冰河”这两个字的字模就生成了
3. 打开LCD驱动文件
把字模生成的16进制数复制到
4. 打印汉字“冰河”
LCD_P14x16Str(0,0,"冰河");
三、如何在LCD上画图
-
同理,用到的是驱动文件中的Draw_BMP()函数
-
解释函数void Draw_BMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char * bmp)
-
unsigned char x0,unsigned char y0 //矩形左顶点 x0以像素点位单位 y0以行为单位
unsigned char x1,unsigned char y1 //矩形右下角顶点
unsigned char * bmp //生成的数组Draw_BMP(32,0,95,6,map);//将屏幕中间的一半作为画纸
// 64 * 56,32到95共有64个像素点,0~6共7行,一行8个像素点,共56个像素点
Draw_BMP(0,0,127,7,map);//将这个屏幕作为画纸
// 128 * 64 -
这里用到的求字模软件是
-
配置参数
- 打印刚画的图
Draw_BMP(32,0,95,6,Bmp013);
以上就是本文所要内容
注:本文用到的字模软件,链接是: 字模软件下载 需要的可自行下载,是绿色软件,解压即可使用!