0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【蓝桥杯嵌入式】第三章 LED流水灯

撞上电子 2023-09-26 08:00 次阅读

第一节 硬件解读

先看看原理图:

c0211eaa-5bff-11ee-9788-92fbcf53809c.png

和普通的开发板不同,蓝桥杯嵌入式的开发板通过一个74HC573芯片之后,连接到LED和限流电阻。那么74HC573是什么呢?我们可以通过数据手册找到他的真值表,如下:

c035b89c-5bff-11ee-9788-92fbcf53809c.png

从上表我们可以得到一个结论,只有在OE#和LE分别为L和H的时候,Output才会随Input变化而变化,所以我们控制了OE#和LE,只要其中一个不符合条件,不管Input是什么,Output的状态都不会改变,从而保护了Output的状态,得到锁存的效果,如果大家需要补充这里的知识,建议大家去看数电的知识,或者百度搜索“锁存器”。

从上面的原理图我们可以看出,OE#已经是低电平了,那么就只有LE了,也就是PD2引脚,当PD2引脚是高电平,单片机就可以控制LED了;如果是低电平,就无法控制了。例如,我们让LD1点亮的流程应该是:单片机控制PD2为高电平,打开锁存器,让单片机可以控制LED->单片机控制PC8引脚为低电平,让LD1亮->单片机控制PD2为低电平,关闭锁存器,让单片机无法控制LED。

第二节CubeMX配置

第一步:双击打开STM32CubeMX,,如下图,新建项目。注意:新建项目本教程只介绍一次,以后项目的建立不在重复。

c044f348-5bff-11ee-9788-92fbcf53809c.png

第二步:在英文状态下搜索芯片:STM32G431RBT6,选后选择对应的芯片即可。注意:搜索芯片时,确保输入法在英文的状态下;选择芯片的时候,可以选择后缀带有“TR”的,2者芯片完全一致,不影响比赛。

c04f005e-5bff-11ee-9788-92fbcf53809c.png

第三步:配置下载器,如下图。注意:本教程下载器配置是配置一遍,后续教程将不再重复。

c0597322-5bff-11ee-9788-92fbcf53809c.png

第四步:配置STM32的时钟注意:本教程时钟配置是配置一遍,后续教程将不再重复。如下:

c089ffec-5bff-11ee-9788-92fbcf53809c.png

c0a322a6-5bff-11ee-9788-92fbcf53809c.png

第五步:选择项目信息,如下配置:2处是项目的名字;3处是项目的路径;4处是编译器;5处是编译器版本注意:项目路径不能包含中文等其他非法字符;编译器一定要选择MDK-ARM;编译器版本一定要选择v5。后续教程将不在重复本步操作。

c0b2a46a-5bff-11ee-9788-92fbcf53809c.png

第六步:如下图,将3,4处的按钮勾选,点击5处,生成Keil工程。注意:后续教程将不在重复本步操作。

c0c38ea6-5bff-11ee-9788-92fbcf53809c.png

第七步:点击上步的5处之后,会有一个对话框,意思分别是:打开项目文件夹位置;打开项目;关闭本窗口。注意:这里灵活处理,打开文件夹和项目都可以。后续教程将不在重复本步操作。

c0ced61c-5bff-11ee-9788-92fbcf53809c.png

第八步:注意,以上操作是建立工程必备的操作,以后的教程不在重复。现在重新打开STM32CubeMX,开始配置LED的相关引脚。

c0de4a52-5bff-11ee-9788-92fbcf53809c.png

c0ea17b0-5bff-11ee-9788-92fbcf53809c.png

c0f49780-5bff-11ee-9788-92fbcf53809c.png

第九步:重新生成代码。

第三节MDK代码

第一步,编译代码,检查STM32CubeMX生成的代码是否正常。如下图,点击1处编译,之后在2处可以看见:0错误,0警告。注意:后续教程将不在重复本步操作。

c0fef0c2-5bff-11ee-9788-92fbcf53809c.png

第二步:配置下载器,这一步很多步骤,希望大家仔细一点,一步一步来。注意:不要忘记点击“OK”,后续教程将不在重复本步操作。

c1154994-5bff-11ee-9788-92fbcf53809c.png

第三步:新建.h文件。在“项目名/Core/Inc”中新建一个“Zsdz.h”的文件。注意:后续教程将不在重复本步操作。

c12b47f8-5bff-11ee-9788-92fbcf53809c.png


第四步:新建.c文件。在“项目名/Core/Src”中新建一个“Zsdz.c”的文件。注意:后续教程将不在重复本步操作。

c139ec68-5bff-11ee-9788-92fbcf53809c.png

第五步:添加“Zsdz.c”文件。点击1处,可以看见项目的所有的文件,点击2,3处,准备添加“Zsdz.c”文件,但是发现没有“Zsdz.c”文件,如下图:需要返回到上一层文件目录中,点击4处。注意:后续教程将不在重复本步操作。

c1437968-5bff-11ee-9788-92fbcf53809c.png

如下图:虽然没有发现“Zsdz.c”文件,但是我们看见了Core文件夹,还记得我们的“Zsdz.c”文件保存在哪吗?在“项目名/Core/Src”中,所以我们进入到“/Core/Src”,找到“Zsdz.c”文件即可。注意:后续教程将不在重复本步操作。


c14c0326-5bff-11ee-9788-92fbcf53809c.png

第六步:如下图,代表添加成功。注意:后续教程将不在重复本步操作。

c15e86d6-5bff-11ee-9788-92fbcf53809c.png

第七步:注意:如果利用STM32CubeMX生成MDK项目,“Zsdz.c”文件可能会从MDK项目中移除,请重新添加。

第八步:编写“Zsdz.c”文件的代码,如下:注意:后续教程将不在重复本步操作。

c1738d38-5bff-11ee-9788-92fbcf53809c.png

第九步:进入到“Zsdz.h”文件,右键,选择“Go to Headerfile‘Zsdz.h’”。注意:后续教程将不在重复本步操作。


c184acbc-5bff-11ee-9788-92fbcf53809c.png

第十步:编写“Zsdz.h”文件的代码,如下:注意:后续教程将不在重复本步操作。

c19b571e-5bff-11ee-9788-92fbcf53809c.png

第十一步:在Main中添加“Zsdz.h文件”,如下:注意:只可以添加在“USER CODE END”和“USER CODE BEGIN”之间,否则等下次利用STM32CubeMX生成MDK项目时,不在“USER CODE END”和“USER CODE BEGIN”之间的代码会被覆盖。

c1b1549c-5bff-11ee-9788-92fbcf53809c.png

第十二步:编写LED的函数模板,具体如下:注意:不要忘记声明gpio.c文件。注意:后续教程将不在重复本步操作。

c1c62732-5bff-11ee-9788-92fbcf53809c.png

c1cee0de-5bff-11ee-9788-92fbcf53809c.png

c1d83eb8-5bff-11ee-9788-92fbcf53809c.png

c1e147ba-5bff-11ee-9788-92fbcf53809c.png

第十三步:以上就是LED所有的封装函数了,我们在“Zsdz.h”文件中声明他们,如下图:注意:后续教程将不在重复本步操作。

c1f821f6-5bff-11ee-9788-92fbcf53809c.png

第十四步:现在随便在main函数中写几个,看看效果。

c2075cca-5bff-11ee-9788-92fbcf53809c.png

c21e3aee-5bff-11ee-9788-92fbcf53809c.png

第十五步:编译检查代码并下载。点击1处编译代码,之后在2处可以看见0错误0警告。代码没有问题之后,点击3处下载代码,在4处看见Flash Load finished at xxxx,就证明代码下载成功。注意:后续教程将不在重复本步操作。

c2286a28-5bff-11ee-9788-92fbcf53809c.png

第四节实验现象

注意:请用USB线连接电脑与开发板,注意是CN2口。

现象:500ms为间隔的流水灯。

来源:撞上电子微信公众号

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23272

    浏览量

    660787
  • 嵌入式
    +关注

    关注

    5082

    文章

    19118

    浏览量

    305087
  • 流水灯
    +关注

    关注

    21

    文章

    433

    浏览量

    59706
收藏 人收藏

    评论

    相关推荐

    低成本单片机方案——触摸流水灯开关控制

    概述本方案旨在提供一种基于低成本单片机的触摸流水灯开关控制解决方案。该方案结合了单片机技术、电容触摸传感技术和LED驱动技术,实现了通过触摸操作控制流水灯的效果。
    的头像 发表于 12-26 16:37 51次阅读
    低成本单片机方案——触摸<b class='flag-5'>流水灯</b>开关控制

    蓝桥该如何备赛?

    蓝桥物联网已经换了次开发板了,每次换板子,题目难度都会降低不少,所以说,蓝桥物联网在蓝桥
    的头像 发表于 12-19 21:02 114次阅读
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>该如何备赛?

    蓝桥单片机】第一 大赛概述

    第一节蓝桥是什么样的比赛蓝桥全国软件和信息技术专业人才大赛(以下简称“蓝桥”)是由中国教育
    的头像 发表于 10-29 12:00 332次阅读
    【<b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>单片机】第一<b class='flag-5'>章</b> 大赛概述

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第7-8学习心得

    这是一本很好的学习嵌入式的书籍。 在深入学习《嵌入式Hypervisor:架构、原理与应用》的第7-8后,我对嵌入式Hypervisor的架构、原理及其在实际应用中的重要性有了更为深
    发表于 10-09 18:50

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第三四章阅读报告

    在深入阅读了《嵌入式Hypervisor:架构、原理与应用》的第三、四后,我对嵌入式Hypervisor的设计与实现技术有了更为详尽和系统的理解。以下是我对这两
    发表于 10-09 18:29

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第一二读后感

    非常感谢社区提供的阅读机会,拿到书后,就迫不及待的的开始阅读了。 社区还有签名留念呢,值得纪念。 《嵌入式Hypervisor:架构、原理与应用》的第一、二为读者提供了关于Hypervisor技术
    发表于 10-09 18:22

    《DNK210使用指南 -CanMV版 V1.0》第三章 CanMV简介

    第三章 CanMV简介 本章将对CanMV进行简单介绍本章分为如下几个小节:3.1 初识CanMV 3.2 CanMV的应用开发方式 3.1 初识CanMVCanMV是嘉楠科技针对AIOT编程
    发表于 09-03 10:13

    迅为电子RK3588S开发板第三章Buildroot系统功能测试

    迅为电子RK3588S开发板第三章Buildroot系统功能测试
    的头像 发表于 09-02 14:45 767次阅读
    迅为电子RK3588S开发板<b class='flag-5'>第三章</b>Buildroot系统功能测试

    【「ARM MCU嵌入式开发 | 基于国产GD32F10x芯片」阅读体验】+书籍整体概况

    ,12教学课件,2423分钟的视频讲解内容,还提供40个示例源码。 书籍的背面介绍了此书背后的几位具有影响力的开创者,以及获取此图书资源的二维码,书籍标价等信息。 、书籍前言 前言部分介绍了当代嵌入式
    发表于 08-25 22:48

    学习hypervisor嵌入式产品安全设计

    、PRTOS的配套工具等内容。第三部分(第13~15)介绍嵌入式Hypervisor的高级应用和未来规划,涵盖μC/OS-II与Linux内核的虚拟化过程,以及PRTOS社区的愿景等内容。
    发表于 08-25 09:11

    嵌入式机电一体化系统设计与实现》读后感

    的重要作用。 第三章则是关于嵌入式水下航行器(ROV/URV)系统的建模与仿真,这是本书的一大亮点。通过对ROV动力学模型的详细阐述,包括水动力阻尼模型、水动力附加质量模型等,我深刻理解了复杂机械系统
    发表于 08-21 08:45

    双麒麟系统!迅为RK3588开发板+银河麒麟/开放麒麟

    现代化的用户界面和丰富的开发工具,适用于台式机、笔记本和嵌入式设备,致力于推动国产操作系统的自主研发和生态建设。 部分功能演示截图 更新目录 第一 功能适配表 第二 Android系统功能测试
    发表于 07-15 10:35

    单片机POV LED流水灯制作

    电子发烧友网站提供《单片机POV LED流水灯制作.docx》资料免费下载
    发表于 05-28 14:34 3次下载

    【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第三章)键控流水灯实验例程

    灯、按键、拨码开关等。 二:实验目的 由PB0(即开发板S0位置)按键输入,切换LED0~LED7的输出效果。 :实验原理 实现框架如下: (1)顶层实现按键切换LED
    发表于 04-29 16:06

    51单片机流水灯制作

    流水灯是学习51单片机的一个基本项目,是我们对单片机IO口输出认识的基本项目。当然学会了花样流水灯也很好玩。 下面就分享一种51单片机流水灯制作的方法。 一、流水灯原理图 二、相关知
    的头像 发表于 02-26 10:06 1625次阅读
    51单片机<b class='flag-5'>流水灯</b>制作