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

embedded/2025/3/16 14:54:02/

前言

基础的文件创建,参赛资源代码的导入,我就不说了,直接说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);
}

文章来源:https://blog.csdn.net/2302_79504723/article/details/146283386
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/embedded/173085.html

相关文章

Web元件库 ElementUI元件库+后台模板页面(支持Axure9、10、11)

Axure是一款非常强大的原型设计工具&#xff0c;它允许设计师和开发者快速创建高保真原型&#xff0c;以展示应用或网站的设计和功能。通过引入各种元件库&#xff0c;如ElementUI元件库&#xff0c;可以极大地丰富Axure的原型设计能力&#xff0c;使其更加贴近实际开发中的UI组…

AI绘画笔记--基础知识

一.什么是AI绘画 AI绘画或者说AI生图&#xff0c;本质上来说还是图像生成技术&#xff0c;是一种基于深度学习的人工智能技术&#xff0c;通过提前大量学习学习图像特征&#xff0c;生成符合提示词的新图像。 整个流程可以简化理解为&#xff1a;人们首先让深度学习模型读取大量…

硬件与软件的边界-从单片机到linux的问答详解

--- # 硬件与软件的边界——从单片机到 Linux 设备驱动的问答详解 在嵌入式开发和操作系统领域&#xff0c;经常会有人问&#xff1a; **“如果一个设备里没有任何代码&#xff0c;硬件是不是依然会工作&#xff1f;例如&#xff0c;数据收发、寄存器数据存储、甚至中断触发…

Redis设计与实现-数据持久化

数据持久化 1、RDB持久化1.1 RDB文件的创建和载入1.2 自动间隔保存1.3 RDB文件结构 2、AOF持久化2.1 AOF写入2.2 AOF载入2.3 AOF重写 如有侵权&#xff0c;请联系&#xff5e; 如有错误&#xff0c;也欢迎批评指正&#xff5e; 本篇文章大部分是来自学习《Redis设计与实现》的笔…

呵护斜颈老人:解锁护理关键,重塑健康生活

痉挛性斜颈是一种以颈肌扭转或阵挛导致头部倾斜、旋转为特征的疾病&#xff0c;给老人的生活带来诸多不便。做好健康护理&#xff0c;对缓解症状、提升生活质量至关重要。 在日常生活中&#xff0c;要注重老人的姿势管理。为老人选择高度合适、有良好颈部支撑的枕头&#xff0c…

基于SpringBoot + Vue 的校园论坛系统

系统环境&#xff1a;Windows 推荐运行环境&#xff1a;jdk8/17/23mavenMySQLnode14.0 服务端技术&#xff1a;SpringbootMybatis 前端技术&#xff1a;VueaxiosElement-UI 用户功能模块&#xff1a; 登录注册&#xff1a;用户可以创建账户并登录系统。 浏览帖子&#xff1a;用…

【Go】字符串相关知识点

字符串&#xff08;String&#xff09;是 Go 语言中最常用的数据类型之一&#xff0c;广泛应用于文本处理、数据解析、网络通信等场景。Go 语言的字符串是不可变的 UTF-8 字节序列&#xff0c;在性能和安全性方面与其他编程语言有所不同。 源代码 package main//字符类型 byt…

【大模型(LLMs)RAG 检索增强生成 面经】

1 RAG 基础面 1.1 为什么大模型需要外挂 (向量) 知识库? 如何将外部知识注入大模型,最直接的方法:利用外部知识对大模型进行微调。 思路: 构建几十万量级的数据,然后利用这些数据 对大模型进行微调,以将 额外知识注入大模型 优点: 简单粗暴 缺点: 这几十万量级的数据…