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
    +关注

    关注

    243

    文章

    24452

    浏览量

    687827
  • 嵌入式
    +关注

    关注

    5188

    文章

    20172

    浏览量

    329246
  • 流水灯
    +关注

    关注

    21

    文章

    435

    浏览量

    61320
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ARM嵌入式这样学

    的内核就是ARM内核,它的主频高很多,普通的都有几百M。CPU缓存大,分有很多级的流水处理线,这样大大提高了CPU利用率。这种IC的资源足以让一个嵌入式操作系统正常跑起来,WINCE, LINUX
    发表于 12-04 07:48

    嵌入式实时操作系统及应用开发(第三版)罗蕾主编光盘镜像百度云链接

    嵌入式实时操作系统及应用开发(第三版)罗蕾主编光盘镜像百度云链接通过网盘分享的文件:嵌入式系统配套光盘.iso链接: https://pan.baidu.com/s/1R3IprlRnOTo0_7lEKjd_tA 提取码: 2c
    发表于 11-12 16:20

    【「高速数字设计(基础篇)」阅读体验】+二三章阅读

    电平越来越低,最终传输高电平低于B们的高电平最低值,造成了失真。后面讲解如何估算74HC04可以扇出多少个逻辑门。 第三章讲解信号在传出过程中是有时延的,需要经过电容器充放电过程。 这个上升曲线越陡,代表
    发表于 11-06 21:52

    2025“芯原”全国嵌入式软件开发大赛圆满落幕

    此前,2025年7月20日至26日,第四届“芯原”全国嵌入式软件开发大赛决赛在海口成功举办。
    的头像 发表于 08-06 09:51 1131次阅读

    【「DeepSeek 核心技术揭秘」阅读体验】第三章:探索 DeepSeek - V3 技术架构的奥秘

    一、模型架构 在阅读第三章关于 DeepSeek 的模型架构部分时,我仿佛打开了一扇通往人工智能核心构造的大门。从架构图中,能清晰看到 Transformer 块、前馈神经网络、注意力机制等模块
    发表于 07-20 15:07

    求助,关于CYW920829M2EVK-02使用AIROC蓝牙测试和调试工具 1.3 测试 HCI 指令的问题求解

    第三章第五步,执行double-在设备管理器中查看检测到的端口名称为\'HCI UART\'而不是文档 描述 的\'Kitprog3 USB-UART\'、是驱动问题导致的 hci通讯异常么?
    发表于 07-02 06:24

    初级工程师PCB设计技巧(PPT版)

    目录第一:PCB 概述第二:PCB 设计流程及PCB Layout 设计第三章: PROTEL 常用操作第四: PCB Layout 技巧 获取完整文档资料可下载附件哦!!!!
    发表于 06-26 15:50

    第三章 开发环境搭建

    本章介绍了W55MH32开发环境搭建。常用工具 KEIL MDK功能强大,安装需注意路径等要点并安装芯片包。还讲解MDK5使用技巧,如文本美化、语法检测、代码编辑等实用功能。
    的头像 发表于 05-26 09:40 879次阅读
    <b class='flag-5'>第三章</b> 开发环境搭建

    第三章 仿真器介绍

    本篇文章我们介绍了W55MH32板载的WIZ-Link仿真器的使用方法,让我们一起插上USB线开始下载、调试程序吧!
    的头像 发表于 05-21 11:54 736次阅读
    <b class='flag-5'>第三章</b> 仿真器介绍

    嵌入式开发入门指南:从零开始学习嵌入式

    基础 3. 学习路径推荐第一阶段:熟悉开发环境(如Keil、IAR、STM32)第二阶段:掌握裸机编程与驱动开发第三阶段:学习RTOS(实时操作系统)如FreeRTOS第四阶段:深入理解Linux嵌入式
    发表于 05-15 09:29

    第三章 警报联动】手把手教你玩转新版正点原子云

    本帖最后由 jf_85110202 于 2025-3-13 14:43 编辑 【第三章 警报联动】手把手教你玩转新版正点原子云 新版原子云网址:原子云(点击登录原子云) 原子云特色功能:设置
    发表于 03-12 16:05

    第三章 干扰滤波技术

    文件过大,大家下载附件查看全文哦!
    发表于 03-04 14:13

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对嵌入式主板的基本概念、构成部分、
    的头像 发表于 01-13 16:30 1200次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

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

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

    蓝桥该如何备赛?

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