蓝桥杯嵌入式赛道复习笔记1(led点亮)

前言

基础的文件创建,参赛资源代码的导入,我就不说了,直接说CubeMX的配置以及代码逻辑思路的书写,在此我也预祝大家人人拿国奖

理论讲解

原理图简介

 1.由于存在PC8引脚到PC15引脚存在冲突,那么官方硬件给的解决方案是加入了一个PD2锁存器,但是有这个是远远不够的,如果想要解决,可以在LED笔记那里观看解决

2.LED只有设置为低电压时才可以让我们的灯泡亮

手册讲解

在你学习的时候可能出现以下情况

HAL_GPIO_WritePin(GPIOC,0xFF00, GPIO_PIN_RESET);

这个就要追溯到我们的底层代码去了解一下HAL_GPIO_WritePin

当设置为SET时

 

当设置为RESET时

现在我可以给你个式例 

#include  "led_test.h"
//uwTick
uint32_t count;
uint32_t PIN=0xFF00;void led_start(){count=uwTick;while(uwTick<count+1000){}HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC,PIN, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_RESET);count=uwTick;while(uwTick<count+1000){}HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC,PIN, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_RESET);
}

实战代码

CubeMX的配置

第1步

第2步

Debug配置成Serial Wire(SWD)的原因主要有以下几点:

  1. 引脚数量少:SWD是一种双线协议,只需要使用两个引脚(SWDIO和SWCLK),相比JTAG等其他调试接口,占用的引脚数量更少,适合引脚资源有限的场景。

  2. 可靠性高:在高速模式下,SWD比JTAG更加可靠。在大数据量的情况下,JTAG下载程序可能会失败,而SWD发生的几率会小很多。

  3. 下载速度快:SWD的下载速度可以达到10M/s,且在实际使用中表现稳定。

  4. 调试效率高:SWD模式下,调试器可以直接访问芯片的寄存器,进行读写操作,便于对系统进行调试。

  5. 避免用户程序干扰:在调试过程中,如果用户程序存在逻辑错误,可能会影响JTAG下载程序的执行。而SWD模式下,即使用户程序有错误,也可以通过持续复位的方式避免用户程序的干扰,从而正常下载程序。

  6. 开发工具支持:许多现代的开发工具和调试器都支持SWD模式,比如STM32CubeMX等,在这些工具中配置SWD可以确保调试和下载的顺利进行。

因此,将Debug配置成Serial Wire模式,可以提高调试的效率和可靠性,减少引脚占用,避免用户程序的干扰,并且得到开发工具的良好支持。

第3步

led代码

#include  "led_test.h"
//uwTick
uint32_t count;
uint32_t PIN=0xFF00;void led_start(){count=uwTick;while(uwTick<count+1000){}HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC,PIN, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_RESET);count=uwTick;while(uwTick<count+1000){}HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC,PIN, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_RESET);
}

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

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

相关文章

Linux进程1.0--task_struct

1.硬件&#xff1a;冯诺依曼体系结构&#xff1a; 单个分析&#xff1a;、 数据流向&#xff1a;数据必须先进入输入设备&#xff0c;再到存储器&#xff0c;然后由存储器给控制器&#xff0c;控制器收到以后进行相应的处理后&#xff0c;再传回存储器&#xff0c;存储器最终传…

本地部署Jina AI Reader:用Docker打造你的智能解析引擎

本地部署Jina AI Reader&#xff1a;用Docker打造你的智能解析引擎 &#x1f31f; 引言&#xff1a;为什么需要本地部署&#xff1f;&#x1f4cc; 场景应用图谱&#x1f527; 部署指南&#xff08;Linux环境&#xff09;1. 环境准备2. Docker部署3. 验证服务状态 &#x1f680…

贪心算法简介(greed)

前言&#xff1a; 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每个决策阶段都选择当前最优解的算法策略&#xff0c;通过局部最优的累积来寻求全局最优解。其本质是"短视"策略&#xff0c;不回溯已做选择。 什么是贪心、如何来理解贪心(个人对贪心的…

代码随想录day17 二叉树part05

654.最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums …

宇树人形机器人开源模型

1. 下载源码 https://github.com/unitreerobotics/unitree_ros.git2. 启动Gazebo roslaunch h1_description gazebo.launch3. 仿真效果 H1 GO2 B2 Laikago Z1 4. VMware: vmw_ioctl_command error Invalid argument 这个错误通常出现在虚拟机环境中运行需要OpenGL支持的应用…

通过特征值和特征向量实现的图像压缩和特征提取

前文&#xff0c;我们在学习人工智能的线性代数基础的时候&#xff0c;就了解到&#xff0c;矩阵在人工智能中被广泛使用&#xff0c;接下来我们就从大家非常常见的图像开始&#xff0c;深度理解矩阵在人工智能中的应用。有关线性代数基础的文章可以看的我CSDN:人工智能中的线性…

蓝桥杯2023年第十四届省赛真题-整数删除 暴力-->链表+小根堆

题目来自DOTCPP&#xff1a; 思路&#xff1a; ①每次找到数列中的最小值下标&#xff0c;然后用状态数组st标记它&#xff0c;相当与删除它&#xff0c;之后就不会访问它。 ②对最小值下标左边和右边判断一下&#xff0c;看有没有数字&#xff0c;如果有就把最小值加到两边第…

springboot438-基于SpringBoot的数字化教学资源管理系统(源码+数据库+纯前后端分离+部署讲解等)

&#x1f495;&#x1f495;作者&#xff1a; 爱笑学姐 &#x1f495;&#x1f495;个人简介&#xff1a;十年Java&#xff0c;Python美女程序员一枚&#xff0c;精通计算机专业前后端各类框架。 &#x1f495;&#x1f495;各类成品Java毕设 。javaweb&#xff0c;ssm&#xf…

蓝桥杯刷题——第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

一、0握手问题 - 蓝桥云课 算法代码&#xff1a; #include <iostream> using namespace std; int main() {int sum0;for(int i49;i>7;i--)sumi;cout<<sum<<endl;return 0; } 直接暴力&#xff0c;题意很清晰&#xff0c;累加即可。 二、0小球反弹 - 蓝…

跨境卫士跟vps哪个更好用?跨境卫士为卖家提供固定IP环境

跨境卫士是通过为卖家提供固定的环境 i p来隔离本地电脑环境&#xff0c;为卖家创造一个真实独立的物理环境&#xff0c;让买家再任意电脑&#xff0c;任意网络下都能够安全的管理账号。跨境卫士和紫鸟原理一样&#xff0c;是通过为卖家提供固定的环境 i p来隔离本地电脑环境&a…

coding ability 展开第四幕(滑动指针——巩固篇)超详细!!!!

文章目录 前言水果成篮思路 找到字符串中所有字母异位词思路 串联所有单词的子串思路 最小覆盖子串思路 总结 前言 本专栏上一篇博客&#xff0c;带着大家从认识滑动窗口到慢慢熟悉 相信大家对滑动窗口已经有了大概的认识 其实主要就是抓住——一段连续的区间 今天来学习一些滑…

图解AUTOSAR_CP_BSW_General

AUTOSAR BSW通用规范详解 AUTOSAR基础软件模块通用规范与架构解析 目录 1. 概述 1.1. AUTOSAR BSW通用规范简介1.2. 文档目的与范围2. BSW模块文件结构 2.1. 标准文件组织2.2. 命名规范3. BSW模块接口 3.1. 接口类型3.2. 模块API3.3. 配置参数4. BSW通用架构 4.1. 分层架构4.2.…

如何在Futter开发中做性能优化?

目录 1. 避免不必要的Widget重建 问题&#xff1a;频繁调用setState()导致整个Widget树重建。 优化策略&#xff1a; 2. 高效处理长列表 问题&#xff1a;ListView一次性加载所有子项导致内存暴涨。 优化策略&#xff1a; 3. 图片加载优化 问题&#xff1a;加载高分辨率…

组件通信框架ARouter原理剖析

组件通信框架ARouter原理剖析 一、前言 随着Android应用规模的不断扩大&#xff0c;模块化和组件化开发变得越来越重要。ARouter作为一个用于帮助Android应用进行组件化改造的框架&#xff0c;提供了一套完整的路由解决方案。本文将深入分析ARouter的核心原理和实现机制。 二…

Netty启动源码NioEventLoop剖析accept剖析read剖析write剖析

学习链接 NIO&Netty - 专栏 Netty核心技术十–Netty 核心源码剖析Netty核心技术九–TCP 粘包和拆包及解决方案Netty核心技术七–Google ProtobufNetty核心技术六–Netty核心模块组件Netty核心技术五–Netty高性能架构设计 聊聊Netty那些事儿 - 专栏 一文搞懂Netty发送数…

2024年12月CCF-GESP编程能力等级认证C++编程一级真题解析

一级真题的难度: ‌ CCF-GESP编程能力等级认证C++编程一级真题的难度适中‌。这些真题主要考察的是C++编程的基础知识、基本语法以及简单的算法逻辑。从搜索结果中可以看到,真题内容包括了选择题、编程题等题型,涉及的内容如C++表达式的计算、基本输入输出语句的理解…

73.HarmonyOS NEXT PicturePreviewImage组件深度剖析:高级功能扩展与性能优化策略(三)

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT PicturePreviewImage组件深度剖析&#xff1a;高级功能扩展与性能优化策略(三) 文章目录 HarmonyOS NEXT PicturePreviewImage组件…

Spark 中创建 DataFrame 的2种方式对比

spark.createDataFrame(data).toDF("name", "age") 和 spark.createDataFrame(spark.sparkContext.parallelize(data), schema) 创建df的方式有什么区别&#xff1f; 在 Spark 中&#xff0c;创建 DataFrame 的方式有多种&#xff0c;其中两种常见的方式…

六十天前端强化训练之第十七天React Hooks 入门:useState 深度解析

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、知识讲解 1. Hooks 是什么&#xff1f; 2. useState 的作用 3. 基本语法解析 4. 工作原理 5. 参数详解 a) 初始值设置方式 b) 更新函数特性 6. 注意事项 7. 类组…

IEC61850标准下MMS 缓存报告控制块 ResvTms详细解析

IEC61850标准是电力系统自动化领域唯一的全球通用标准。IEC61850通过标准的实现&#xff0c;使得智能变电站的工程实施变得规范、统一和透明&#xff0c;这大大提高了变电站自动化系统的技术水平和安全稳定运行水平。 在 IEC61850 标准体系中&#xff0c;ResvTms&#xff08;r…