文章目录
- 前言
- 一、拷贝官方例程
- 二、cubeMX配置
- 三、LCD代码及函数分析使用
- 四、sprintf函数
- 总结
前言
本篇文章将带大家学习LCD屏幕的操作,LCD的配置是非常复杂的,在比赛上去实现这些驱动程序基本上是不可能的,当然了比赛官方也是知道这一点的,所以他给了一个LCD屏幕的例程,下面就让我们来看看如何使用这个例程。
一、拷贝官方例程
在比赛资源包当中我们可以看见HAL_06_LCD这个程序,这个程序就是官方给我们准备好的LCD程序了。比赛时我们可以直接拷贝一份当作自己的工程来写就行了,这样就省去了配置LCD的操作。
二、cubeMX配置
下面我们来看看官方是如何配置cubeMX的。
LCD原理图
从图中可以知道配置LCD是非常复杂的,因为他的引脚非常多,所以LCD的程序在比赛中会给出。
这个cubeMX里面也都是密密麻麻的引脚配置。
为了节省比赛的时间建议大家直接拷贝官方程序当成自己的程序,然后再根据比赛要求配置LED等引脚,最后大家要记得修改工程文件名。
三、LCD代码及函数分析使用
打开lcd.h文件后可以看到很多函数,下面我们就介绍一些重要的函数。
液晶屏初始化函数
液晶屏使用前需要进行初始化操作。
里面主要涉及到了一些GPIO初始化和寄存器配置,这个我们不需要管,直接调用官方给出的函数即可。
I2CInit();
LCD清屏函数
这个函数可以将屏幕上面显示的所有东西都进行清除然后再设置屏幕背景颜色。
LCD_Clear(Blue); //将屏幕变成蓝色
//颜色宏定义
/* LCD color */
#define White 0xFFFF
#define Black 0x0000
#define Grey 0xF7DE
#define Blue 0x001F
#define Blue2 0x051F
#define Red 0xF800
#define Magenta 0xF81F
#define Green 0x07E0
#define Cyan 0x7FFF
#define Yellow 0xFFE0
LCD行列参数是240*360的,所以下面定义了Line0-9一共有10行。
#define Line0 0
#define Line1 24
#define Line2 48
#define Line3 72
#define Line4 96
#define Line5 120
#define Line6 144
#define Line7 168
#define Line8 192
#define Line9 216
显示字符串函数
第一个参数代表第几行,第二个参数代表显示的字符串。
void LCD_DisplayStringLine(u8 Line, u8 *ptr);
//在中间显示Hello,world
LCD_DisplayStringLine(Line4 ,(unsigned char *)" Hello,world. ");
设置字体颜色
LCD_SetTextColor(Red);
设置字体背景色
LCD_SetBackColor(Black);
很多人可能会问了为什么要在Hello,world前后加上空格,因为我们是想在中间显示,但是LCD显示默认从最左边开始显示所以我们在前面加上空格就是为了让这个字符串显示到中间。
四、sprintf函数
C 库函数 int sprintf(char *str, const char *format, …) 发送格式化输出到 str 所指向的字符串。
具体用法还是上代码吧
char buf[20] = ;
sprintf(buf,"The num is %d",20);//20将会替代%d
printf("%s\n",buf);
//打印结果:The num is 20
sprintf函数可以添加一系列附加参数,比如%d,%s,根据需要可以实现字符串的格式化。这个函数在后面的省赛中经常会用于LCD显示数据。
总结
LCD显示的函数就先介绍到这里了,后面有些函数大家可以去试试看。