当前位置: 首页 > article >正文

蓝桥杯嵌入式--LCD屏幕使用提升

前言

之前在专栏里已经介绍过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');

效果图

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


http://www.kler.cn/news/3206.html

相关文章:

  • 自动驾驶V2X
  • 【10】核心易中期刊推荐——模式识别与机器学习
  • Github隐藏功能显示自己的README,个人化你的Github主页
  • 【嵌入式烧录/刷写文件】-1-详解Motorola S-record(S19/SREC/mot/SX)格式文件
  • [入门必看]数据结构2.3:线性表的链式表示
  • 【Linux】进程控制
  • Python入门之程序bug的产生及调试程序
  • Java并发高频面试题
  • 固定优先级仲裁器设计
  • OSPF综合大实验
  • 我眼中的‘C’——动态内存+柔型数组
  • 1.linux操作命令
  • 近万字文全面解读GPT-4,带你了解GPT-4
  • 蓝桥杯刷题冲刺 | 倒计时17天
  • 单片机 | 51单片机原理
  • 【微信小程序】随手笔记
  • 免费搭建个人博客
  • 如何使用docker搭建redis cluster集群?
  • Linux驱动开发——串口设备驱动
  • 正式环境关闭swagger