目录
一、前言
二、LCD代码的移植
三、LCD代码的调用
前一篇文章已经简单记录了一下cubeMX软件的使用和LED的点亮,今天来记录一下LCD的使用。LCD的驱动代码有很多,但实际上在蓝桥杯的比赛中用起来非常简单,因为赛点会提供LCD的驱动代码,我们只需要将代码移植到我们自己的工程里即可,这给予了我们极大的方便。而赛点资源数据包我已上传到我的资源里,完全免费,大家按需自取。
(一)首先打开我们的赛点资源包,查看里面的液晶显示屏例程
(二)选择HAL_06_LCD
(三)分别点开下图所示的Inc、Src
(四)找到以下三个文件:fonts.h、lcd.h、lcd.c,并复制到自己的工程文件bsp中
(五)打开自己的工程文件bsp并进行复制
至此,LCD代码的移植已完成
移植完代码后,打开赛点资源包中的代码,找到如下与LCD相关的代码部分,并根据需要复制到自己的工程对应的地方
所有与LCD相关的代码如下:
LCD_Init();
LCD_Clear(Blue);
LCD_SetBackColor(Blue);
LCD_SetTextColor(White);
LCD_DrawLine(120,0,320,Horizontal);
LCD_DrawLine(0,160,240,Vertical);
HAL_Delay(1000);
LCD_Clear(Blue);
LCD_DrawRect(70,210,100,100);
HAL_Delay(1000);
LCD_Clear(Blue);
LCD_DrawCircle(120,160,50);
HAL_Delay(1000);
LCD_Clear(Blue);
LCD_DisplayStringLine(Line4 ,(unsigned char *)" Hello,world. ");
HAL_Delay(1000);
LCD_SetBackColor(White);
LCD_DisplayStringLine(Line0,(unsigned char *)" ");
LCD_SetBackColor(Black);
LCD_DisplayStringLine(Line1,(unsigned char *)" ");
LCD_SetBackColor(Grey);
LCD_DisplayStringLine(Line2,(unsigned char *)" ");
LCD_SetBackColor(Blue);
LCD_DisplayStringLine(Line3,(unsigned char *)" ");
LCD_SetBackColor(Blue2);
LCD_DisplayStringLine(Line4,(unsigned char *)" ");
LCD_SetBackColor(Red);
LCD_DisplayStringLine(Line5,(unsigned char *)" ");
LCD_SetBackColor(Magenta);
LCD_DisplayStringLine(Line6,(unsigned char *)" ");
LCD_SetBackColor(Green);
LCD_DisplayStringLine(Line7,(unsigned char *)" ");
LCD_SetBackColor(Cyan);
LCD_DisplayStringLine(Line8,(unsigned char *)" ");
LCD_SetBackColor(Yellow);
LCD_DisplayStringLine(Line9,(unsigned char *)" ");
简单记录一下LCD的各代码意义及作用:
(1)LCD显示屏的初始化
LCD_Init();
(2)LCD清屏操作
LCD_Clear(Blue);
(3)设置LCD显示屏的背景颜色
LCD_SetBackColor(Blue);
(4)设置字体颜色
LCD_SetTextColor(White);
(5)绘制线条,其中120
和 0
是线条的起始坐标,表示线条的起点位于 x 坐标 120、y 坐标 0 的位置。参数 320
是线条的长度,表示线条的宽度为 320 个像素。Horizontal
是线条的方向,表示绘制一条水平线,Vertical
表示绘制一条垂直线
LCD_DrawLine(120,0,320,Horizontal);
LCD_DrawLine(0,160,240,Vertical);
(6)在指定行数显示指定字符
LCD_DisplayStringLine(Line4 ,(unsigned char *)" Hello,world. ");
例如,我希望在LCD显示屏上的第一行显示“Hello,KAI!”,并且设置背景颜色为蓝色,字体颜色为白色,则只需要选取以下代码
//循环前
LCD_Init();
LCD_Clear(Blue);
LCD_SetBackColor(Blue);
LCD_SetTextColor(White);
//循环内
LCD_DisplayStringLine(Line0,(unsigned char *)" Hello, KAI! ");
具体代码位置如下:
烧录效果如下: