STM32G431RBT6之LCD与LED配置

首先,配置时钟树,时钟树的配置在我的另外一篇博客里,这里不再赘述.

LCD与LED具有共同的IO口,同时创建工程较好.

打开原理图,发现LED的IO口是PC8~PC15,还有一个容易看漏的PD2.LCD的IO口是PC0到PC15.

 

 当然,看产品手册也可以知道,但是还是推荐大家看原理图.

 打开cubumx,给PC0~PC15,还有PD2设置GPIO_OutPut.

 点开GPIO的设置,将PC8~PC15设置成High与Pull-up.

PD2只设置为Low就可以了,其余IO口不做处理.

 打开文件夹存储的位置,创建新文件夹,命名bsp(随意命名,自己知道就好,后续用来存放.c与.h文件.

 打开keil5,创建led.c与led.h文件,放到dsp文件夹里面.

打开蓝桥杯嵌入式资源包,液晶驱动参考程序->MDK5_LCD_HAL,里面有src,inc文件夹,将src文件夹里面的LCD.c复制到bsp文件夹里,将inc文件夹里的LCD.h与fonts.h放到bsp文件夹里.

打开产品手册,按照指示设置相应操作.所有操作记得点击ok,切记.

在keil5里面点开小锄头

点击C/C++,点开3个小数点.

按照指示,选择bsp文件.

led.c代码如下:

#include "led.h"void LED_Disp(uchar LedDisp)
{HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC,LedDisp<<8,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}

led.h代码如下:

#ifndef _LED_H_
#define _LED_H_#include "main.h"void LED_Disp(uchar LedDisp);#endif

在cubumx里面代码要写在begin与end之间,切记.

在main.h里面,在begin与end中间加入LED流水灯代码.

#define uchar unsigned char
#define uint unsigned int
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>

在main.c里面,在begin与end中间加入

#include "OLED.h"
#include "led.h"

在main函数里面,在begin与end中间加入初始化LED与LCD.在第一行显示Hellow. 如

LED_Disp(0x00);//led初始化
LCD_Init();//lcd初始化
LCD_Clear(Blue);
LCD_SetBackColor(Blue);
LCD_SetTextColor(White);char ch[30];
sprintf(ch,"%s","Hellow");
LCD_DisplayStringLine(Line0,(uint8_t*)ch);//在第一行显示Hellow

在main函数里面引用led.c里面的函数led_disp();如:

​
while (1)
{LED_Disp(0x00);//LED全关HAL_Delay(500);LED_Disp(0x01);//点亮第1个LEDHAL_Delay(500);LED_Disp(0x02);//点亮第2个LEDHAL_Delay(500);LED_Disp(0x04);//点亮第3个LEDHAL_Delay(500);LED_Disp(0x08);//点亮第4个LEDHAL_Delay(500);LED_Disp(0x10);//点亮第5个LEDHAL_Delay(500);LED_Disp(0x20);//点亮第6个LEDHAL_Delay(500);LED_Disp(0x40);//点亮第7个LEDHAL_Delay(500);LED_Disp(0x80);//点亮第8个LEDHAL_Delay(500);
}

 至此,LCD与LED的模块就完成了.

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

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

相关文章

Java设计模式 _结构型模式_过滤器模式

一、过滤器模式 1、过滤器模式 过滤器模式&#xff08;Filter Pattern&#xff09;是这一种结构型设计模式。过滤器&#xff0c;顾名思义&#xff0c;就是对一组数据进行过滤&#xff0c;从而最终获取到我们预期的数据。 2、实现思路 &#xff08;1&#xff09;、定义过滤器的…

想要应聘前端工程师——学习路线指南

前端工程师学习路线 按照前端岗位需求,以优先学习工作更需要,面试更常考的内容为原则,由浅入深,层层铺垫,与时俱进,可以较容易地总结出前端学习路线图: HTML / CSS / JavaScript 基础学习 《Web 入门》 MDN 权威入门指南,HTML / CSS / JavaScript 快速上手 《CSS 世界…

华为OD机试 - 密码解密(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

ChatGPT/GPT4 科研实战教程-包括论文写作、数据分析、科研绘图、PPT制作,程序开发

从2022年3月&#xff0c;OpenAI公司发布chatGPT3.5开始&#xff0c;以ChatGPT为代表的人工智能内容生成技术&#xff08;简称AIGC&#xff09;引起了广泛关注&#xff0c;我们进入了全民AI时代。 因此&#xff0c;我们需要了解和掌握AI思维&#xff0c;才能更好适应这个时代的…

uniapp微信小程序-分享

https://developers.weixin.qq.com/miniprogram/dev/component/button.html https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95 参考未整理 自定义参考未整理

使用Canal实现MySQL主从同步

说明&#xff1a;本文介绍如何使用Canal实现MySQL主从同步的效果&#xff0c;关于Canal入门使用参考&#xff1a;Canal入门使用 启动Canal 首先&#xff0c;设置Canal服务器里&#xff0c;目标节点&#xff08;即监测的MySQL节点&#xff09;的配置&#xff0c;启动Canal服务…

Scala 03 —— Scala OOP Extension

Scala 2.1 —— Scala OOP Extension 一、正则 文章目录 Scala 2.1 —— Scala OOP Extension一、正则1.1 Java正则和Scala正则的区别1.2 Java正则和Scala正则的的基本知识点Java正则Scala正则 1.3 练习练习一&#xff1a;使用正则表达式解析日志方法一&#xff1a;使用findAl…

心理学上有个概念叫:习惯性反驳(附上解决办法)

在心理学上&#xff0c;有一个词&#xff0c;叫做习惯性反驳。 什么意思呢&#xff1f; 就是不管你说什么&#xff0c;他都要反驳你&#xff0c;最后把你带入负面的情绪黑洞&#xff0c;搞得你非常崩溃。 一个总是习惯性反驳的人&#xff0c;其实是非常可怕的。 习惯性反驳的3个…

与Apollo共创生态:Apollo7周年大会自动驾驶生态利剑出鞘

前言 4月22日&#xff0c;百度Apollo在北京车展前夕举办了以“破晓•拥抱智变时刻”为主题的智能汽车产品发布会&#xff0c;围绕汽车智能化&#xff0c;发布了智驾、智舱、智图等全新升级的“驾舱图”系列产品。 1、7周年大会 自2013年百度开始布局自动驾驶&#xff0c;201…

PotatoPie 4.0 实验教程(24) —— FPGA实现摄像头图像中心差分变换

为什么要对图像进行中心差分变换&#xff1f; 对图像进行中心差分变换的主要目的是计算图像中每个像素点的梯度。梯度在图像处理中是一个非常重要的概念&#xff0c;它可以用来描述图像中灰度变化的快慢和方向&#xff0c;常用于边缘检测、特征提取和图像增强等任务中。 具体…

windows服务启动提示‘服务没有响应控制功能’(mysql启动报错)

在安装mysql的时候&#xff0c;在windows服务项启动 或 使用命令net start mysql 时启动是报错&#xff0c;提示 服务没有响应控制功能 发生原因&#xff1a; Windows10 x64 或 更高的操作系统&#xff0c;有些系统缺少一些组件 解决办法&#xff1a; 1、下载最新的 Microsoft …

clickhouse安装部署

虚拟机&#xff1a;virtualbox7.0 操作系统&#xff1a;ubuntu server 22.04.3 虚拟机硬件&#xff1a;cpu 1&#xff0c;内存 2G&#xff0c; 硬盘 100G 采用默认安装 参照 https://clickhouse.com/docs/en/install#quick-install 安装部署 对于Debian、Ubuntu&#xff0c…

版本比对sql

弹窗 index <template><el-dialogtitle"版本":visible.sync"dialogVisible"width"55%"center:close-on-click-modal"false":close-on-press-escape"false":before-close"beforeClose"open"open&q…

【Linux网络】DHCP原理与配置

目录 一、DHCP工作原理 1.了解DHCP服务 2.使用DHCP的好处 3.DHCP的分配方式 二、DHCP的租约过程 三、DHCP场景应用实验 一、DHCP工作原理 1.了解DHCP服务 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09; 由Internet工作…

【MyBatis】使用MyBatis框架在两张表是一对多的情况下,进行分步查询,发现对查询出来的结果进行封装时没有将实体类的id进行赋值

Catalog MyBatis在两张表是一对多的情况下,进行分步查询&#xff0c;发现对查询出来的结果进行封装时没有将实体类的id进行赋值1. 表结构2. 场景3. 实现方式具体步骤 4 .测试5. 解决方法 MyBatis在两张表是一对多的情况下,进行分步查询&#xff0c;发现对查询出来的结果进行封装…

企业工厂如何逆风翻盘:VR全景打破多重桎梏

现阶段&#xff0c;制造业工厂面临的困境&#xff0c;就是用着上百万的设备&#xff0c;却赚着几毛钱的利润。传统的工厂参观方式也存在着很多的局限性&#xff0c;例如时间上不方便、不能实地参访、生产线具有隐患等&#xff0c;都会使得参观者不能深入地了解工厂的生产环境和…

Python初级笔记6 函数

函数概念 函数是一段具有特定功能的代码的集合。函数的目的主要在于降低编程难度与增加代码复用。一组语句等价于一个函数&#xff0c;&#xff0c;需要使用这组语句的地方直接调用函数名即可。函数的定义也叫函数的声明&#xff0c;定义后的函数不能直接运行需要通过调用 函数…

《苍穹外卖》Day12部分知识点记录——数据统计-Excel报表

一、工作台 需求分析和设计 接口设计 今日数据接口订单管理接口菜品总览接口套餐总览接口订单搜索&#xff08;已完成&#xff09;各个状态的订单数量统计&#xff08;已完成&#xff09; 代码实现 今日数据接口 1. WorkspaceController 注意不要导错包了 package com.sk…

【经典算法】LeetCode104二叉树的最大深度(Java/C/Python3实现含注释说明,Easy)

目录 题目描述思路及实现方式一&#xff1a;递归思路代码实现Java版本C语言版本Python3版本Go语言版本 复杂度分析 方式二&#xff1a;广度优先搜索(BFS)思路代码实现Java版本C语言版本Python3版本 复杂度分析 总结相似题目 标签(题目类型)&#xff1a;树、深度优先搜索(DFS)、…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.5

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…