当前位置: 首页 > news >正文

蓝桥杯嵌入式16届—— LED模块

使用主板 是STMG431RBT6

STMG431RBT6资源

资源配置表 

跳线说明表

引脚状况

PC8~PC15分别对应着LD1~LD8 

SN74HC573ADWR 是一种锁存器 

  • 当 LE(锁存使能)为高电平,输出 Q 实时跟随输入 D 的变化。
  • 当 LE 为低电平,输出锁定为最后一次输入状态,实现数据保持

STM32CubeMX

选好收藏芯片  

SWD调试选择

外部晶振选择 

端口配置 

 有警告标志不用管,因为我们使用了PC14和PC15两个端口,SYS警告是因为我们使用了PC13。

时钟树配置 

使用外部晶振 

  

 项目生成

项目路径不要有中文,IDE选择MDK-ARM,

代码生成没有硬性要求,不过我的选择比较大众化; 

 

代码编写

 先编译测试一下

新建项目记得勾选 

 这个bsp是我创建的,准备之后的模块代码放入这个文件夹

 新建文件夹加入keil中

新建两个空白项目保存到bsp文件夹即可,一个做.h文件,一个做.c文件 

 

头文件部分 

#ifndef  _LED_H_
#define  _LED_H_
#include "stdint.h"void led_on(uint8_t num);
void led_off(uint8_t num);
void led_toggle(uint8_t num);#endif

C文件部分

#include "led.h"
#include "gpio.h"//打开灯
void led_on(uint8_t num)
{HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8<<(num-1),GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}//关闭灯
void led_off(uint8_t num)
{HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8<<(num-1),GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}//反转灯
void led_toggle(uint8_t num)
{HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_8<<(num-1));HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}

解释一下,为什么在开灯前后需要开闭PD2,因为PD2是锁存器开关,PC8-PC15和LCD的按键冲突了,现在打开是为了后面使用到LCD时候不会冲突,锁存器打开即输入信号,关闭即保持信号

main部分 

  
#include "led.h"while (1){/* USER CODE END WHILE */led_on(1);HAL_Delay(1000);led_off(1);HAL_Delay(1000); /* USER CODE BEGIN 3 */}

相关文章:

蓝桥杯嵌入式16届—— LED模块

使用主板 是STMG431RBT6 STMG431RBT6资源 资源配置表 跳线说明表 引脚状况 PC8~PC15分别对应着LD1~LD8 SN74HC573ADWR 是一种锁存器 当 LE&#xff08;锁存使能&#xff09;为高电平&#xff0c;输出 Q 实时跟随输入 D 的变化。​当 LE 为低电平&#xff0c;输出锁定为最后…...

【IOS webview】源代码映射错误,页面卡住不动

报错场景 safari页面报源代码映射错误&#xff0c;页面卡住不动。 机型&#xff1a;IOS13 技术栈&#xff1a;react 其他IOS也会报错&#xff0c;但不影响页面显示。 debug webpack配置不要GENERATE_SOURCEMAP。 解决方法&#xff1a; GENERATE_SOURCEMAPfalse react-app…...

206. 反转链表 92. 反转链表 II 25. K 个一组翻转链表

leetcode Hot 100系列 文章目录 一、翻转链表二、反转链表 II三、K 个一组翻转链表总结 一、翻转链表 建立pre为空&#xff0c;建立cur为head&#xff0c;开始循环&#xff1a;先保存cur的next的值&#xff0c;再将cur的next置为pre&#xff0c;将pre前进到cur的位置&#xf…...

绘制动态甘特图(以流水车间调度为例)

import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy as np from matplotlib import cm# 中文字体配置&#xff08;必须放在所有绘图语句之前&#xff09; plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] Fa…...

生成式AI应用带来持续升级的网络安全风险

生成式AI应用带来持续升级的网络安全风险概要 根据Netskope最新研究&#xff0c;企业向生成式AI&#xff08;GenAI&#xff09;应用共享的数据量呈现爆炸式增长&#xff0c;一年内激增30倍。目前平均每家企业每月向AI工具传输的数据量已达7.7GB&#xff0c;较一年前的250MB实现…...

C++17更新内容汇总

C17 是 C14 的进一步改进版本&#xff0c;它引入了许多增强特性&#xff0c;优化了语法&#xff0c;并提升了编译期计算能力。以下是 C17 的主要更新内容&#xff1a; 1. 结构化绑定&#xff08;Structured Bindings&#xff09; 允许同时解构多个变量&#xff0c;从 std::tup…...

conda activate激活环境失败问题

出现 CondaError: Run conda init before conda activate 的错误&#xff0c;通常是因为 Conda 没有正确初始化当前的命令行环境。以下是解决方法&#xff1a; 1. 初始化 Conda 运行以下命令以初始化 Conda&#xff1a; conda init解释&#xff1a; conda init 会修改当前 S…...

TensorFlow实现逻辑回归

目录 前言TensorFlow实现逻辑回归 前言 实现逻辑回归的套路和实现线性回归差不多, 只不过逻辑回归的目标函数和损失函数不一样而已. TensorFlow实现逻辑回归 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import mak…...

第十四届蓝桥杯大赛软件赛省赛Python 大学 C 组:6.棋盘

题目1 棋盘 小蓝拥有 nn 大小的棋盘&#xff0c;一开始棋盘上全都是白子。 小蓝进行了 m 次操作&#xff0c;每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色&#xff0c;黑色棋子变为白色)。 请输出所有操作做完后棋盘上每个棋子的颜色。 输入格…...

电商场景下高稳定性数据接口的选型与实践

在电商系统开发中&#xff0c;API接口需要应对高并发请求、动态数据更新和复杂业务场景。我将重点解析电商场景对数据接口的特殊需求及选型方案。 一、电商API必备的四大核心能力 千万级商品数据实时同步 支持SKU基础信息/价格/库存多维度更新每日增量数据抓取与历史版本对比…...

内网服务器centos7安装jdk17

1. 下载 JDK 17 安装包&#xff08;在外网环境操作&#xff09; 在可联网的机器上下载 JDK 17 的压缩包&#xff08;推荐使用 OpenJDK&#xff09;&#xff1a; OpenJDK 官方源&#xff1a; Adoptium Eclipse Temurin Azul Zulu 直接下载命令示例&#xff08;在外网机器上执行…...

Git 使用教程

Git 使用教程 Git 是目前最流行的分布式版本控制系统&#xff0c;它能够高效地管理代码&#xff0c;并支持团队协作开发。本文将介绍 Git 的基本概念、常用命令以及如何在实际项目中使用 Git 进行版本控制。 1. Git 基本概念 在使用 Git 之前&#xff0c;需要了解以下几个基…...

【无标题】跨网段耦合器解决欧姆龙CJ系列PLC通讯问题案例

欧姆龙CJ系列PLC不同网段的通讯问题 一、项目背景 某大型制造企业的生产车间内&#xff0c;采用了多台欧姆龙CJ系列PLC对生产设备进行控制。随着企业智能化改造的推进&#xff0c;需要将这些PLC接入工厂的工业以太网&#xff0c;以便实现生产数据的实时采集、远程监控以及与企业…...

13_pandas可视化_seaborn

导入库 import numpy as np import pandas as pd # import matplotlib.pyplot as plt #交互环境中不需要导入 import seaborn as sns sns.set_context({figure.figsize:[8, 6]}) # 设置图大小 # 屏蔽警告 import warnings warnings.filterwarnings("ignore")关系图 …...

【C++进阶四】vector模拟实现

目录 1.构造函数 (1)无参构造 (2)带参构造函数 (3)用迭代器构造初始化函数 (4)拷贝构造函数 2.operator= 3.operator[] 4.size() 5.capacity() 6.push_back 7.reserve 8.迭代器(vector的原生指针) 9.resize 10.pop_back 11.insert 12.erase 13.memcpy…...

14使用按钮实现helloworld(1)

目录 还可以通过按钮的方式来创建 hello world 涉及Qt 中的信号槽机制本质就是给按钮的点击操作,关联上一个处理函数当用户点击的时候 就会执行这个处理函数 connect&#xff08;谁发的信号&#xff0c; 信号类型&#xff0c; 谁来处理这个信息&#xff0c; 怎么处理的&…...

嵌入式EMC设计面试题及参考答案

目录 解释 EMC(电磁兼容性)的定义及其两个核心方面(EMI 和 EMS) 电磁兼容三要素及相互关系 为什么产品必须进行 EMC 设计?列举至少三个实际工程原因 分贝(dB)在 EMC 测试中的作用是什么?为何采用对数单位描述干扰强度? 传导干扰与辐射干扰的本质区别及典型频率范围…...

cursor的.cursorrules详解

文章目录 1. 文件位置与作用2. 基本语法规则3. 常用规则类型与示例3.1 忽略文件/目录3.2 限制代码生成范围3.3 自定义补全建议3.4 安全规则 4. 高级用法4.1 条件规则4.2 正则表达式匹配4.3 继承规则 5. 示例文件6. 注意事项 Cursor 是一款基于 AI 的智能代码编辑器&#xff0c;…...

Opencv计算机视觉编程攻略-第七节 提取直线、轮廓和区域

第七节 提取直线、轮廓和区域 1.用Canny 算子检测图像轮廓2.用霍夫变换检测直线&#xff1b;3.点集的直线拟合4.提取连续区域5.计算区域的形状描述子 图像的边缘区域勾画出了图像含有重要的视觉信息。正因如此&#xff0c;边缘可应用于目标识别等领域。但是简单的二值边缘分布图…...

清明假期在即

2025年4月2日&#xff0c;6~22℃&#xff0c;一般 遇见的事&#xff1a;这么都是清明出去玩&#xff1f;你们不扫墓的么。 感受到的情绪&#xff1a;当精力不放在一个人身上&#xff0c;你就会看到很多人&#xff0c;其实可以去接触的。 反思&#xff1a;抖音上那么多不幸和幸…...

数字孪生技术解析:开启虚拟与现实融合新时代

一、数字孪生技术的概念与原理 数字孪生技术是一种通过构建物理对象的数字映射&#xff0c;实现虚拟与现实同步的技术。该技术集成了物联网、云计算、人工智能、大数据等多种前沿技术&#xff0c;能够对物理世界进行全方位的仿真和管理。在数字孪生技术中&#xff0c;物理建模…...

Docker Registry 清理镜像最佳实践

文章目录 registry-clean1. 简介2. 功能3. 安装 docker4. 配置 docker5. 配置域名解析6. 部署 registry7. Registry API 管理8. 批量清理镜像9. 其他10. 参考 registry-clean 1. 简介 registry-clean 是一个强大而高效的解决方案&#xff0c;旨在简化您的 Docker 镜像仓库管理…...

进程间的通信

一.理解 1.进程间通信的目的 数据传输&#xff0c;资源共享&#xff0c;通知事件&#xff0c;进程控制 2.进程间通信的本质 先让不同的进程看到"同一份"资源&#xff08;该资源只能由OS系统提供&#xff0c;不能由任何一个进程提供&#xff09; 3.具体通信方式 …...

当实时消费遇到 SPL:让数据处理更高效、简单

作者&#xff1a;豁朗 通过 SPL 消费&#xff0c;将业务逻辑“左移” SLS 对实时消费进行了功能升级&#xff0c;推出了 基于 SPL 的规则消费功能。在实时消费过程中&#xff0c;用户只需通过简单的 SPL 配置即可完成服务端的数据清洗和预处理操作。通过SPL消费可以将客户端复…...

Python----机器学习(线性回归:反向传播和梯度下降)

一、前向传播与反向传播的区别 前向传播是在参数固定后&#xff0c;向公式中传入参数&#xff0c;进行预测的一个过程。当参 数值选择的不恰当时&#xff0c;会导致最后的预测值不符合我们的预期&#xff0c;于是我们就 需要重新修改参数值。 在前向传播实验中时&#xff0c;我…...

如何平衡元器件成本与性能

要平衡元器件成本与性能&#xff0c;企业应当明确设计需求和目标、优化元器件选型策略、建立成本性能评估体系、推进标准化设计、加强供应链管理。其中&#xff0c;优化元器件选型策略尤其关键&#xff0c;它直接关系到产品的成本、性能与生命周期。在选型时&#xff0c;工程师…...

java项目分享-分布式电商项目附软件链接

今天来分享一下github上最热门的开源电商项目安装部署&#xff0c;star 12.2k&#xff0c;自行安装部署历时两天&#xff0c;看了这篇文章快的话半天搞定&#xff01;该踩的坑都踩完了&#xff0c;软件也打包好了就差喂嘴里。 项目简介 mall-swarm是一套微服务商城系统&#xf…...

低代码框架

在数字化转型浪潮中&#xff0c;软件开发的效率与成本成为企业关注的焦点。低代码框架应运而生&#xff0c;以其独特的开发模式&#xff0c;打破了传统软件开发的壁垒&#xff0c;为企业和开发者带来了全新的解决方案。那么&#xff0c;究竟什么是低代码框架呢&#xff1f;​ …...

Git Reset 命令详解与实用示例

文章目录 Git Reset 命令详解与实用示例git reset 主要选项git reset 示例1. 撤销最近一次提交&#xff08;但保留更改&#xff09;2. 撤销最近一次提交&#xff0c;并清除暂存区3. 彻底撤销提交&#xff0c;并丢弃所有更改4. 回退到特定的提交5. 取消暂存的文件 git reset 与 …...

多层内网渗透测试虚拟仿真实验环境(Tomcat、ladon64、frp、Weblogic、权限维持、SSH Server Wrapper后门)

在线环境:https://www.yijinglab.com/ 拓扑图 信息收集 IP地址扫描 确定目标IP为10.1.1.121 全端口扫描 访问靶机8080端口,发现目标是一个Tomcat服务,版本...

<贪心算法>

前言&#xff1a;在主包还没有接触算法的时候&#xff0c;就常听人提起“贪心”&#xff0c;当时是layman&#xff0c;根本不知道说的是什么&#xff0c;以为很难呢&#xff0c;但去了解一下&#xff0c;发现也不过如此嘛&#xff08;bushi)&#xff0c;还以为是什么高级东西呢…...

使用PyTorch实现GoogleNet(Inception)并训练Fashion-MNIST

GoogleNet&#xff08;又称Inception v1&#xff09;是2014年ILSVRC冠军模型&#xff0c;其核心创新是Inception模块&#xff0c;通过并行多尺度卷积提升特征提取能力。本文将展示如何用PyTorch实现GoogleNet&#xff0c;并在Fashion-MNIST数据集上进行训练。 1. 环境准备 im…...

KingbaseES物理备份还原之备份还原

此篇续接上一篇<<KingbaseES物理备份还原之物理备份>>,上一篇写物理备份相关操作,此篇写备份还原的具体操作步骤. KingbaseES版本:V009R004C011B003 一.执行最新物理备份还原 --停止数据库服务,并创建物理备份还原测试目录 [V9R4C11B3192-168-198-198 V8]$ sys_ct…...

Unity Standard Shader 解析(二)之ForwardAdd(标准版)

一、ForwardAdd // Additive forward pass (one light per pass)Pass{Name "FORWARD_DELTA"Tags { "LightMode" "ForwardAdd" }Blend [_SrcBlend] OneFog { Color (0,0,0,0) } // in additive pass fog should be blackZWrite OffZTest LEqual…...

.NET 使用 WMQ 连接Queue 发送 message 实例

1. 首先得下载客户端&#xff0c;没有客户端无法发送message. 安装好之后长这样 我装的是7.5 安装目录如下 tools/dotnet 目录中有演示的demo 2. .Net 连接MQ必须引用bin目录中的 amqmdnet.dll 因为他是创建Queuemanager 的核心库&#xff0c; 项目中引用using IBM.WMQ; 才…...

设计模式之单例模式

视频链接&#xff1a; 设计模式|狂神说 单例模式是什么&#xff1f; 单例模式是确保一个类在整个应用程序中只有一个实例&#xff0c;并提供一个全局方法访问这个实例。 单例模式分为饿汉式和懒汉式。 饿汉式单例 饿汉式顾名思义就是&#xff0c;程序一启动就创建这个单例bea…...

从入门到入土,SQLServer 2022慢查询问题总结

列为,由于公司原因,作者接触了一个SQLServer 2022作为数据存储到项目,可能是上一任的哥们儿离开的时候带有情绪,所以现在项目的主要问题就是,所有功能都实现了,但是就是慢,列表页3s打底,客户很生气,经过几周摸爬滚打,作以下总结,作为自己的成长记录。 一、索引问题…...

大语言模型在端到端智驾中的应用

大语言模型在端到端智驾中的应用 双系统端到端 小鹏&#xff1a;AI天玑系统—神经网络XNet规控大模型XPlanner大语言模型XBrain 商汤绝影&#xff1a;DriveAGI 理想&#xff1a;端到端VLM VLA端到端 Waymo&#xff1a;EMMA OPENEMMA Wayve&#xff1a;LINGO-2...

【深度学习量化交易19】行情数据获取方式比测(1)——基于miniQMT的量化交易回测系统开发实记

我是Mr.看海&#xff0c;我在尝试用信号处理的知识积累和思考方式做量化交易&#xff0c;应用深度学习和AI实现股票自动交易&#xff0c;目的是实现财务自由~ 目前我正在开发基于miniQMT的量化交易系统——看海量化交易系统。 经常使用MiniQMT的朋友都知道&#xff0c;xtquant的…...

《网络管理》实践环节03:snmp服务器上对网络设备和服务器进行初步监控

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 应用拓扑图 3.0准备工作 所有Linux服务器上&#xff08;服务器和Agent端&#xff09;安装下列工具 yum -y install net-snmp net-snmp-utils 保证所有的HCL网络设备和服务器相互间能…...

linux操作系统

1.linux进程管理 操作系统都有进程的概念 查看和关闭程序 2.关闭进程 3,查看计算机硬件信息 4.定时任务...

Python基础语法 - 判断语句

Python基础语法 - 判断语句 1. if语句 if 条件:# 条件为True时执行的代码示例 age 18 if age > 18:print("您已成年")2. if-else语句 if 条件:# 条件为True时执行的代码 else:# 条件为False时执行的代码示例 age 16 if age > 18:print("您已成年&q…...

c++柔性数组、友元、类模版

目录 1、柔性数组&#xff1a; 2、友元函数&#xff1a; 3、静态成员 注意事项 面试题&#xff1a;c/c static的作用? C语言&#xff1a; C: 为什么可以创建出 objx 4、对象与对象之间的关系 5、类模版 1、柔性数组&#xff1a; #define _CRT_SECURE_NO_WARNINGS #…...

电子技术基础

目录 一、整体概述 二、知识点梳理及考点分析 &#xff08;一&#xff09;半导体器件 &#xff08;二&#xff09;基本放大电路 &#xff08;三&#xff09;功率放大电路 &#xff08;四&#xff09;集成运算放大器 &#xff08;五&#xff09;直流稳压电源 &#xff0…...

解码大模型时代算力基座的隐形引擎

在千亿参数大模型竞速的今天&#xff0c;算力军备竞赛已进入白热化阶段。当我们聚焦GPU集群的运算峰值时&#xff0c;一个关键命题正在浮出水面&#xff1a;支撑大模型全生命周期的存力基座&#xff0c;正在成为制约AI进化的关键变量。绿算技术将深入解剖大模型训练与推理场景中…...

【NetCore】ControllerBase:ASP.NET Core 中的基石类

ControllerBase:ASP.NET Core 中的基石类 一、什么是 ControllerBase?二、ControllerBase 的主要功能三、ControllerBase 的常用属性四、ControllerBase 的常用方法2. 模型绑定与验证3. 依赖注入五、ControllerBase 与 Controller 的区别六、实际开发中的最佳实践七、总结在 …...

人工智能之数学基础:矩阵分解之LU分解

本文重点 LU分解是线性代数中一种重要的矩阵分解方法,它将一个方阵分解为一个下三角矩阵(L)和一个上三角矩阵(U)的乘积。这种分解方法在数值线性代数中有着广泛的应用,特别是在求解线性方程组、计算矩阵的行列式、求逆矩阵等方面。 LU分解的基本概念 设A是一个nn的方阵…...

C#核心学习(六)面向对象--封装(5)静态成员及静态构造函数和静态类 以及和常量的区别

目录 一、什么是静态的&#xff1f;什么是常量&#xff1f; 1. ​静态&#xff08;Static&#xff09;​ 2. ​常量&#xff08;const&#xff09;​ 二、类中的静态成员有什么用&#xff1f; 1. ​共享数据 2. ​工具方法与全局配置 3. ​单例模式 三、静态类和静态成…...

去中心化稳定币机制解析与产品策略建议

去中心化稳定币机制解析与产品策略建议&#xff08;以Maker/DAI为例&#xff09; 一、核心机制对比&#xff1a;法币抵押型 vs. 加密货币抵押型 法币抵押型&#xff08;如USDT&#xff09; 技术逻辑&#xff1a;1:1美元储备托管于中心化机构&#xff08;如银行&#xff09;&…...

构造超小程序

文章目录 构造超小程序1 编译器-大小优化2 编译器-移除 C 异常3 链接器-移除所有依赖库4 移除所有函数依赖_RTC_InitBase() _RTC_Shutdown()__security_cookie __security_check_cookie()__chkstk() 5 链接器-移除清单文件6 链接器-移除调试信息7 链接器-关闭随机基址8 移除异常…...