蓝桥杯嵌入式--LCD屏幕使用提升
创始人
2025-06-01 03:21:25
0

前言

之前在专栏里已经介绍过LCD相关库文件的移植,今天来介绍一下对于LCD屏幕的使用技巧。

屏幕基本配置与函数

一、屏幕初始化

使用lcd前的必要步骤就是对LCD屏幕进行初始化操作,这也是一个容易忘记的操作。

LCD_Init();\\使用lcd前的必要步骤就是对LCD屏幕进行初始化操作

二、清屏

void LCD_Clear(u16 Color);

该函数的作用是把LCD屏幕上的内容清空,并且将屏幕颜色设置为传入的颜色参数。

三、清行

void LCD_ClearLine(u8 Line);

该函数作用是将屏幕上特定行的内容清空,不改变背景颜色,除非清空前设置了背景色。

四、设置背景与字体颜色

void LCD_SetTextColor(vu16 Color); //设置文本颜色void LCD_SetBackColor(vu16 Color);//设置背景颜色

我对这两个函数的理解在于对于LCD函数的分类上。其实不难发现,LCD函数分为设置类与输出类两种。

一般来说都是设置对其后的输出产生影响,换句话说,大家不要想当然认为SetBackColor后屏幕的背景色就会整体变色,设置背景色只对后面的输出函数造成影响。

举个例子:

LCD_Init();/* USER CODE END 2 */LCD_Clear(Blue);LCD_SetBackColor(white);//设置背景色为白LCD_SetTextColor(Black);//设置文本为黑LCD_DisplayStringLine(Line4,(uint8_t*)"Hello World");HAL_Delay(2000);LCD_SetBackColor(Black); //设置背景为黑LCD_ClearLine(Line4);

刚开始

2s后

上面这个结果告诉我们:设置背景与字体颜色只对后面输出语句那一行起作用,并且如果不更新会一直保持之前的设置。

五、显示一行字符串

void LCD_DisplayStringLine(u8 Line, u8 *ptr)

这个函数大家用的最多了,但是我们需要注意,后面输入的参数为一个u8的指针,如果我们直接输出字符串,会出现报错,要在前面加上(uint8_t*),如果传入的是一个uint8_t类型的数组,则不需要担心这个问题。

LCD_DisplayStringLine(Line2,(uint8_t*)"      PASSWORD      ");

并且要熟知,一行只能显示20个字符。

其实重点在于如何在字符串中传入参数。

sprintf函数

sprintf函数用于格式化输出,使用前需要包含头文件“stdio.h”

    int sprintf( char *buffer, const char *format [, argument,...] );sprintf(准备存储的数组名,"  ABCD =%d/%f/%s",变量名1,变量名2); sprintf(text,"  volitage =%.2f",val); //实例

之后再使用:

LCD_DisplayStringLine(LineX,数组名);

即可显示变量嵌套。

六、在某个位置上显示单个字符

void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);

该函数第一个参数为字符的行数,第二个参数比较特别,是字符的列,类型是u16位的,意味着这个参数是以像素点为单位,范围在0-320,其实其中有个换算关系:

320-(16 * R),参数R的值为列。

最后一个参数为显示字符的ASCII码。例如:

LCD_DisplayChar(Line6,Pos,' '); //在某个位置显示一个空格

大家可能要问,这个函数有什么用呢?其实这个函数的用途主要是配合之前的设置背景颜色和字体颜色来显示“高亮”,“闪动”等等效果。

例如高亮:

LCD_Init();/* USER CODE END 2 */LCD_Clear(Blue);LCD_SetBackColor(Blue);LCD_SetTextColor(Black);LCD_DisplayStringLine(Line4,(uint8_t*)"Hello World");//相当于重写
LCD_SetBackColor(Yellow);LCD_DisplayChar(Line4,320,'H');
LCD_DisplayChar(Line4,320-16,'e');
LCD_DisplayChar(Line4,320-32,'l');
LCD_DisplayChar(Line4,320-48,'l');
LCD_DisplayChar(Line4,320-64,'o');

效果图

这个的优点是可以在中间的某个位置显示高亮。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...