首页 > 其他分享 >蓝桥杯嵌入式冲刺国奖-1、LED基础配置

蓝桥杯嵌入式冲刺国奖-1、LED基础配置

时间:2024-09-18 21:24:31浏览次数:3  
标签:HAL 国奖 LED PIN 引脚 配置 蓝桥 GPIO 我们

 1、原理图

在官方给的产品手册中,可以看到控制8个LED的引脚分别为PC8-PC15,,正常来说我们只需要修改引脚的高低电平即可控制灯的亮灭,但该原理图有一个PD2引脚,我们需要先拉高再拉低才可修改PC8-PC12的引脚。

2、Cubemx基础配置

首先选择芯片型号,我们用的板子是stm32g431rbt6,我们在搜索框输入stm32g431rb,选择第二个

然后选择RCC标签,并将HSE改为修改为Crystal/Ceramic Resonator

选择SYS标签,并将Debug修改为Serial Wire

做完以上步骤,我们便可以开始配置时钟了,时钟频率按照如下配置成80Mhz,外部晶振根据官方给定的手册,设定为24Mhz。

若记不住,将①处设为24,②③处按如下配置,然后在④处输入80,系统即可帮我们自动配置好

以上步骤务必记牢,因为这是一切代码的开始,无论做什么,我们都需要进行以上的配置,后续该过程我们直接略过。

3、引脚配置

接下来,我们进行引脚配置,我们需要用的引脚是PC8-PC15和PD2,我们在芯片上点击对应的标签,将这些引脚模式配置为GPIO_Output,即完成引脚的配置。

然后进行最后一步,给文件命名(不能包含中文),保存路径也不能包含中文,编译软件选择MDK-ARM。

在生成单独的.c.h文件前面打勾。

最后点击生成代码,cubemx的配置便完成了。

4、代码编写

打开后,我们先对代码进行编译,保证0错误。

然后点击魔术棒,选择Debug,然后下载方式选择下图这种,点击Settings。

然后点击Flash Download,勾选上Reset and Run,这样我么在后续编写完程序后,不用手动按板子上的Reset按键,即可运行新程序。

打开main.c文件,即可看到代码,下面我们会看到有一个gpio.c文件,这是我们在cubemx中对引脚的配置代码,cubemx说的直白一点就是帮我们进行初始化配置的软件。

然后我们编写一点代码进行测试:

这段代码是PC8亮500ms,灭500ms的测试程序,我们前面讲过了,需要先将PD2拉高再拉低才可更改引脚的电平,于是我们就在修改PC8之前修改PD2的电平。

PS:我们的代码需要写在BEGIN 和 END之间,这样我们在更改Cubemx后我们自己写的代码才不会消失。

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	 HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
	 HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
	 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_RESET);
	 HAL_Delay(500);
	 
	 HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
	 HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
	 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET);
	 HAL_Delay(500);
	  
	  
  }

然后我们编译(F7),下载(F8),记住快捷键,以后可节约很多时间。

接下来,我们看一下实际的效果:

如果做到这一步,恭喜你,已经成功学会了点灯。但是我们发现这样虽然可以点亮灯,但是会不会太繁琐了,那有没有稍微简易的方法呢。当然有,后续我们再进行点灯升级篇,以及如何同时控制多个灯,上述内容均为基础,希望各位勤加练习。

5、写在最后

本文针对于对嵌入式有一定了解,并且想要速成的同学,逻辑可能不会讲的很清楚,后续章节也是,我将分享我是如何快速构建模板的,我只是想将自己所学的内容分享给大家。第一次尝试,难免有错误,欢迎各位大佬批评指正。

我自己是结合b站的视频资源以及蚂蚁工厂的教学,构建了一套自己的模板,蓝桥杯很重要的一点就是构建一套属于自己的模板,根据题目信息,在模板做出更改。

标签:HAL,国奖,LED,PIN,引脚,配置,蓝桥,GPIO,我们
From: https://blog.csdn.net/qq_62549077/article/details/142342116

相关文章

  • Failed to start docker.service — 完美解决方法详解 ️
    ......
  • java.lang.UnsatisfiedLinkError: dlopen failed: library "libc++_shared.so" not fo
    一、概述在AndroidStudio中集成opencv,使用其native函数时报的一个错误 二、解决办法opencv提供的native文件夹中提供的是动态库但是在gradle中的配置中,配置的stl是静态的,将其改为shared就行了externalNativeBuild{cmake{cp......
  • ERROR: Failed to build installable wheels for some pyproject.toml based projects
    问题描述安装fastembed包的时候发现在PyStemmer这一步的时候报错:Buildingwheelsforcollectedpackages:PyStemmerBuildingwheelforPyStemmer(setup.py)...errorerror:subprocess-exited-with-error×pythonsetup.pybdist_wheeldidnotrunsucce......
  • 洛谷P8774 [蓝桥杯 2022 省 A] 爬树的甲壳虫 题解 期望DP
    题目链接:https://www.luogu.com.cn/problem/P8774思路:设\(f_i\)为甲壳虫从高度\(i\)到达高度\(n\)因为从高度\(i\)走\(1\)步有\(1-P_{i+1}\)的概率到达高度\(i+1\),有\(P_{i+1}\)的概率到达高度\(0\),所以:\(f_i=1+(1-P_{i+1})\timesf_{i+1}+P_{i+1}\times......
  • Docker拉取镜像报错:failed to register layer: exit status 22: unpigz: abort: zlib
    今天在甲方的服务器上升级Docker容器时拉取镜像报错failedtoregisterlayer:exitstatus22:unpigz:abort:zlibversionlessthan1.2.3,很纳闷明明在阿里云上测试的时候没有这个问题来着,遂开始查资料发现是pigz的bug,将其升级即可重写拉取镜像运行操作步骤:安装新版本c......
  • formality:antenna cell被看做black box引起的verify failed原因分析
    我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口跑formality对比pr前后网表一致性时发现verifyfailed,打开gui,tracefailed的点发现pr后的网表因为在clocktree上插入了antennacell,而antennacell此时是blackbox,导致clocktree无法trace到clockso......
  • (论文解读)Visual-Language Prompt Tuning with Knowledge-guided Context Optimization
    Comment:acceptedbyCVPR2023基于知识引导上下文优化的视觉语言提示学习摘要提示调优是利用任务相关的可学习标记将预训练的视觉语言模型(VLM)适应下游任务的有效方法。基于CoOp的代表性的工作将可学习的文本token与类别token相结合,来获得特定的文本知识。然而,这些特定的文......
  • 蓝桥杯【物联网】零基础到国奖之路:八. RTC
    蓝桥杯【物联网】零基础到国奖之路:八.RTC第一节RTC的基本知识第二节CubeMX配置第三节代码第一节RTC的基本知识RTC是实时时钟,指可以想时钟一样输出实际时间的电子设备,一般会是集成电路,也被称为是时钟芯片。总之,RTC只是一个靠电池维持运行的32位定时器,并不像实时......
  • 使用STM32实现按键控制LED
    以下是一个使用STM32实现按键控制LED的代码示例,详细说明了每个步骤和代码的功能。#include"stm32f4xx.h"voidGPIO_Configuration(void);voidEXTI_Configuration(void);voidLED_On(void);voidLED_Off(void);intmain(void){GPIO_Configuration();EXTI_C......
  • 蓝桥杯-STM32G431RBT6(串口)
    前言一、配置二、使用步骤1.串口发送代码逻辑效果展示2.串口接收单个字符代码逻辑中断回调函数3.串口接受字符串代码逻辑字符串函数中断回调函数声明代码开源前言一、配置二、使用步骤1.串口发送代码逻辑sprintf(tx_buf,"jinke\r\n"):这行代码使用......