蓝桥杯嵌入式学习记录——LCD的使用

目录

一、前言

二、LCD代码的移植

三、LCD代码的调用


一、前言

        前一篇文章已经简单记录了一下cubeMX软件的使用和LED的点亮,今天来记录一下LCD的使用。LCD的驱动代码有很多,但实际上在蓝桥杯的比赛中用起来非常简单,因为赛点会提供LCD的驱动代码,我们只需要将代码移植到我们自己的工程里即可,这给予了我们极大的方便。而赛点资源数据包我已上传到我的资源里,完全免费,大家按需自取。

二、LCD代码的移植

(一)首先打开我们的赛点资源包,查看里面的液晶显示屏例程

(二)选择HAL_06_LCD

(三)分别点开下图所示的Inc、Src

(四)找到以下三个文件:fonts.h、lcd.h、lcd.c,并复制到自己的工程文件bsp中

(五)打开自己的工程文件bsp并进行复制

至此,LCD代码的移植已完成

三、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!       ");	

具体代码位置如下:

烧录效果如下:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

问题:媒体查询语法中, 可用设备名参数表示“文档打印或预览“的是 #媒体#媒体#其他

问题:媒体查询语法中, 可用设备名参数表示"文档打印或预览"的是 A、C.?screen B.?projection C、A.?print D.?speech 参考答案如图所示

探索设计模式的魅力:设计之美-揭秘设计模式、原则与UML的魔法

设计模式专栏:http://t.csdnimg.cn/U54zu 目录 一、引言 二、设计模式与设计原则 设计模式 设计原则 三、面向对象设计原则 四、UML(统一建模语言) 4.1 UML是什么 UML是一种语言 UML是一种建模语言 UML是一种图形化语言 4.2 UML有什么 4.…

2.6 假期作业

分布编译 -ESc iso 1.预处理:头文件展开,宏替换,删除注释,不会查找语法错误 例:gcc -E 1.c -o 1.i 2.编译:生成汇编文件,会查找语法错误 例:gcc -S 1.i -o 1.s 3.汇编:生成二…

64位Office API声明语句第115讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…

黑马程序员-瑞吉外卖-day7

目录 1.做新建菜品里面的上传图片 1.1设置存储路径(先是我们自己存到我们的本地) 2.在controller目录下写代码 3.在过滤器放开这个路径的访问 4.访问localhost:8080/backend/page/demo/upload.html 1.做新建菜品里面的上传图片 1.1设置存储路径&…

系留无人机的发展与应用场景分析,系留旋翼无人机技术难点分析

传统无人机的局限 随着无人机民用市场的扩大,无人机的功能愈加多样化,被广泛应用于搜救、公共安全、农林、摄像娱乐等多领域。民用市场的扩大使传统无人机面临很多技术难题,诸如定位、通讯、交互技术等等,其中最主要的是续航问题…

LeetCode-第876题-链表的中间结点

1.题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 2.样例描述 3.思路描述 创建两个快慢指针 slow , fast ,起始共同指向头节点,slow 每次走一步,fas…

编译原理与技术(三)——语法分析(五)自底向上-LR分析

一、自顶向下的LL(1)与自底向上的LR (一)LL(1)非递归预测分析器及分析表 (二)LR分析器及分析表 二、LR分析 举个例子。 从上面不难看出,LR分析也是由分析表驱动的。那么关键在于构造LR分析表。

《动手学深度学习(PyTorch版)》笔记6.1

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

力扣 第 383 场周赛 解题报告 | 珂学家 | Z函数/StringHash

前言 谁言别后终无悔 寒月清宵绮梦回 深知身在情长在 前尘不共彩云飞 整体评价 T3是道模拟题,但是感觉题意有些晦涩,T4一眼Z函数,当然StringHash更通用些。 新年快乐, _. T1. 将单词恢复初始状态所需的最短时间 I 思路: 模拟 就是前缀和为…

C++ 哈希+unordered_map+unordered_set+位图+布隆过滤器(深度剖析)

文章目录 1. 前言2. unordered 系列关联式容器2.1 unordered_map2.1.1 unordered_map 的概念2.1.2 unordered_map 的使用 2.2 unordered_set2.2.1 unordered_set 的概念2.2.2 unordered_set 的使用 3. 底层结构3.1 哈希的概念3.2 哈希冲突3.3 哈希函数3.4 哈希冲突的解决3.4.1 …

芯片级原子钟,国产原子钟,芯片原子钟、国产芯片级微型原子钟介绍

原子钟已经为天文、航海、宇宙航行等领域提供了强有力的保障。但是,目前这些器件体积庞大,重量也很大,达几百千克。要成为平常人可使用的实用功能,原子钟的尺寸需要大幅缩小,而精度和速度需要被保留。 文章介绍的此类…

linux设置固定ip

进入目录 cd /etc/sysconfig/network-scripts 找到对应的配置文件,一般是ifcfg-ens开头的 vim ifcfg-ens192 BOOTPROTOstatic 网络类型配置,static代表静态ip IPADDR就是你要设置的ip

并发容器【ConcurentHashMap、CopyOnWriteArrayList、阻塞队列、ArrayBlockingQueue】

并发容器 什么是并发容器?同步容器:并发容器: ConcurrentHashMap结构图JDK1.7结构图JDK1.8结构图 CopyOnWriteArrayList实现原理 并发队列阻塞队列ArrayBlockingQueue 转自极客时间 什么是并发容器? 在JUC包中,有一大部分是关于并发容器的,如Concurr…

ref用法

目录 React中提供两种方法创建ref对象: 类组件获取 Ref 三种方式 ① Ref属性是一个字符串。 ② Ref 属性是一个函数。 ③ Ref属性是一个ref对象。 高级用法1:forwardRef 转发 Ref 高级用法2:ref实现组件通信 【ref作用】:最…

年假作业day2

1.打印字母图形 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) { int i,j; char k; for(i1;i<7;i) { for(j1;j<i;j) { printf("%c",_); } for(j0,…

2.6学习总结

2.6 1.蓝桥公园 2.路径 3.打印路径 4.【模板】Floyd Floyd算法&#xff1a; 是一种多源的最短路径算法&#xff0c;经过一次计算可以得到任意两个点之间的最短路径。 这种算法是基于动态规划的思想&#xff1a; m[i][j]表示从i到j这条边的距离&#xff0c;dp[k][i][j]表示从…

【Vue3】解决路由缓存问题(响应路由参数的变化)

官方文档解释&#xff1a; 解决问题的思路: 让组件实例不复用,强制销毁重建监听路由变化,变化之后执行数据更新操作 方案一&#xff1a;给router-view添加key 以当前路由完整路径为key 的值&#xff0c;给router-view组件绑定 <RouterView :key"$route.fullPath&qu…

如何使用Docker部署Nginx容器实现无公网ip远程访问本地服务

文章目录 1. 安装Docker2. 使用Docker拉取Nginx镜像3. 创建并启动Nginx容器4. 本地连接测试5. 公网远程访问本地Nginx5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 在开发人员的工作中&#xff0c;公网远程访问内网是其必备的技术需求之一。对于…

mvn常见报错:Failed to read artifact descriptor for 解决

问题&#xff1a; mvn打包时报错&#xff1a;Failed to read artifact descriptor for 产生原因&#xff1a; 项目打包时所需的依赖包不存在本地仓库&#xff0c;或本地仓库文件存在问题。 解决方法&#xff1a; 检查仓库可用性&#xff1a; 确保在Maven设置或pom.xml中指定…