蓝桥杯嵌入式--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');

效果图

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/3858.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯倒计时 | 倒计时17天

作者🕵️‍♂️:让机器理解语言か 专栏🎇:蓝桥杯倒计时冲刺 描述🎨:蓝桥杯冲刺阶段,一定要沉住气,一步一个脚印,胜利就在前方! 寄语💓&#xff1a…

将一段数字转为字符串

将一段数字转为字符串 string turn(long long x){string str;while(x){int tx%10;// 数字0的ascii码为48&#xff01;char ct48;strc;// string类拼接方式x/10;}reverse(str.begin(),str.end()); // 不要忘了反转字符串return str; }例: #include<iostream> #include&l…

使用VS Code 配置Ubuntu远程C++开发环境

使用VS Code 配置Ubuntu远程C开发环境 环境准备 VS CodeWSL Ubuntu 虚拟机 配置步骤 在Ubuntu 中配置ssh远程登录 Ubuntu 配置远程登录 VsCode 安装 Remote-ssh 插件 打开vscode ssh configure ,填入相关信息 ​ Host : 主机名称&#xff0c;在左侧列表中显示的名称 ​ …

【Linux】[万字] Linux下的文件操作 及 Linux文件描述符fd 详解

在Linux操作系统中, 文件描述符是一个至关重要的概念. 理解了文件描述符, 其实就可以相当于理解了Linux系统的关于内存文件系统的整个大致框架和逻辑 但是在介绍文件描述符之前, Linux关于文件还存在许多 概念和文件操作 的知识需要介绍一下, 就当作是为解释文件描述符所做的…

IDEA连接Linux服务器进行文件操作

IDEA连接Linux服务器进行文件操作 文章目录IDEA连接Linux服务器进行文件操作连接的作用和意义安装openssh开启openssh服务验证是否开启服务安装网络工具包查看虚拟机IP地址Idea连接Linux虚拟机打开配置页面配置SFTP配置SSH完成后出现的配置文件安装big data tools插件连接的作用…

【RV1126】调试GT911,1024x600 7寸 MIPI 电容触摸屏

文章目录一、驱动注册失败二、触摸屏可以触摸&#xff0c;但是x轴数据反了三、可以触摸了&#xff0c;但是Y轴数据跳变&#xff0c;几乎只有一半的屏幕是可以正常滑动的三、汇顶触摸屏配置文件解析四、使用新的配置文件4.1 新配置解决问题4.2 测试触摸的方法在kernel增加frame …

【学习经验分享NO.21】学习资料分享(持续更新)

本博客将收集整理人工智能深度学习相关资料&#xff0c;进行整理&#xff0c;供大家学习使用。如果有需要帮忙整理的请留言。将不断更新&#xff0c;请持续关注。 一、深度学习论文资料 链接&#xff1a;https://pan.baidu.com/s/18LO5df0dp9-IE8Z3aFyrPg 提取码&#xff1a;c…

记录springboot+vue+fastdfs实现简易的文件(上传、下载、删除、预览)操作

前言说明&#xff1a;springboot vue FastDFS实现文件上传&#xff08;支持预览&#xff09;升级版 FASTDFS部分 FASTDFS安装过程&#xff1a;基于centos 7安装FastDFS文件服务器 SpringBoot部分 springboot源码实现 package com.core.doc.controller;import com.baomid…

【多线程】CAS

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;Java EE初阶&#x1f447; 目 录&#x1f40d;一. 什么是 CAS&#x1f98e;二. CAS 是怎么实现的&#x1f996;三. CAS 典型应用场景&#x1f436;1. 实现原子类&#x1f431;2. 实现自旋锁&#x1f995;四. …

进程间通信----信号量

文章目录信号量1. 问题2. 什么是信号量3. 信号量的使用4. 信号量的控制6. 实例信号量 1. 问题 程序中&#xff0c;有时存在一种特殊代码&#xff0c;最多只允许一个进程执行该部分代码。这部分区域&#xff0c;称为“临界区” 然而在多进程并发执行时&#xff0c;当一个进程进…

Pseudo-completeness(前中序遍历确定后序遍历)

题目链接&#xff1a;题目详情 - 7-16 Pseudo-completeness (pintia.cn) 样例1输入&#xff1a; 7 4 2 5 1 6 3 7 1 2 4 5 3 6 7样例1输出&#xff1a; 1 4 5 2 6 7 3 1样例2输入&#xff1a; 10 8 4 9 2 10 5 1 6 3 7 1 2 4 8 9 5 10 3 6 7样例2输出&#xff1a; 2 8 9 4…

启动容器(后台模式)

使用以下命令创建一个以进程方式运行的容器 rootLAPTOP-B38J348H:~# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world ; sleep 1; done" 在输出中&#xff0c;我们没有看到期望的 "hello world"&#xff0c;而是一串长字符 f7…

IDEA的全新UI可以在配置里启用了,快来试试吧!

刚看到IDEA官方昨天发了这样一条推&#xff1a;IDEA的新UI可以在2022.3版本上直接使用了&#xff01;开启方法如下&#xff1a;打开IDEA的Setting界面&#xff0c;在Appearance & Behavior下有个被标注为Beta标签的New UI菜单&#xff0c;具体如下图&#xff1a;勾选Enable…

ChartGPT多重插补法 填充缺失点

问题描述已知时间戳与对应的值&#xff0c;需要根据时间戳找到缺失的点&#xff0c;然后进行值的填充。例如&#xff1a;源码<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 --><dependency><groupId>org.apache.commons</gr…

【微信小程序】-- uni-app 项目-- 配置 tabBar 效果(五十一)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

【C++进阶】智能指针

文章目录为什么需要智能指针&#xff1f;内存泄漏什么是内存泄漏&#xff0c;内存泄漏的危害内存泄漏分类&#xff08;了解&#xff09;如何避免内存泄漏智能指针的使用及原理smart_ptrauto_ptrunique_ptrshared_ptr线程安全的解决循环引用weak_ptr删除器为什么需要智能指针&am…

HJZS电源监视继电器HJZS-E202 AC220V

系列型号&#xff1a; HJZS-E202断电延时继电器 HJZS-E002断电延时继电器 一 应用 HJZS-E202电源监视继电器用于直流或交流操作的各种保护和自动控制的装置中&#xff0c;用以增加触点数量。 二 安装结构 导轨安装9壳体结构&#xff0c;具体尺寸参阅外型尺寸图。 三 产品型号…

蓝桥杯刷题冲刺 | 倒计时14天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.最长递增2.走迷宫3.解立方根4.回文特判5.修改数组1.最长递增 题目 链接&#xff1a; 最长递增…

【Java版oj 】 day17杨辉三角形的变形、计算某字符出现次数

目录 一、杨辉三角形的变形 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 二、计算某字符出现次数 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代…

Python调用GPT3.5接口的最新方法

GPT3.5接口调用方法主要包括openai安装、api_requestor.py替换、接口调用、示例程序说明四个部分。 1 openai安装 Python openai库可直接通过pip install openai安装。如果已经安装openai&#xff0c;但是后续提示找不到ChatCompletion&#xff0c;那么请使用命令“pip instal…