STM32G030C8T6:使用外部晶振配置LED灯闪烁

本专栏记录STM32开发各个功能的详细过程,方便自己后续查看,当然也供正在入门STM32单片机的兄弟们参考;

本小节的目标是,使用STM32G030C8T6单片机,通过STM32CubeMX软件,配置并使用外部8MHz晶振,实现PB4引脚的LED灯每一秒钟闪烁一次;
涉及到的知识有:外部晶振的配置,配置引脚为输出,STM32CubeMX的使用
我是将PB4引脚接的LED,所以本小节是以PB4为例记录的,如果需要将其他引脚配置为LED灯,那将PB4改为其他对应的引脚即可。

文章目录

  • 1 新建工程
  • 2 配置SWD下载引脚
  • 3 配置RCC
  • 4 设置系统主频
  • 5 配置GPIO输出
  • 6 生成工程
  • 7 增加代码实现LED闪烁
  • 8 STM32CubeMX使用总结

1 新建工程

点击File 菜单下的New Project

在这里插入图片描述

选择芯片型号,如下图所示先输入芯片型号,目前这边输入STM32G030C8,

在这里插入图片描述

双击选择,就确定了芯片型号,界面会变成如下图所示

在这里插入图片描述

2 配置SWD下载引脚

如下图所示,在Pinout&Configuration 栏目的System Core 下,先点击SYS,再勾选Serial Wire 框,
配置好SWD 下载引脚设置:

在这里插入图片描述

3 配置RCC

如下图,先点击RCC,在HSE 配置中选择Crystal/Ceramic Resonator 外部晶振设

在这里插入图片描述

4 设置系统主频

如下图, 先点击Clock Configuration 栏目,按下图的1,2,3,4 步骤完成系统64MHZ 主频设置:

在这里插入图片描述

5 配置GPIO输出

按下图 的1,2,3 步骤完成PB4 引脚配置成GPIO 输出设置:

在这里插入图片描述
配置成功后如下图所示:
在这里插入图片描述

6 生成工程

按照下图的步骤,进行项目配置,项目名称和路径设置等,生成项目的类型选择STM32CubeIDE(我这里以STM32CubeIDE为例,如果你要试用keil5,那就选择MDK-RAM,如果要使用makefile,就选择Makefile),注意项目名称和路径不要有中文名;
在这里插入图片描述

最后全部设置完毕后点击create code,生成项目代码:

在这里插入图片描述

生成的工程如下图所示:
在这里插入图片描述

7 增加代码实现LED闪烁

点击上一步生成的.project文件,会打开STM32CubeIDE,然后在main.c中,输入以下代码,控制LED闪烁,如下图所示:

HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_4);
HAL_Delay(500);

在这里插入图片描述
至此,编译并调试,即可成功实现LED的闪烁;

8 STM32CubeMX使用总结

STM32CubeMX是一款由STMicroelectronics开发的集成开发环境(IDE)工具,用于快速配置和生成基于STM32微控制器的项目。它提供了一个直观的图形界面,使开发人员能够轻松地进行微控制器的配置和初始化设置,包括引脚映射、时钟配置、外设配置等。

以下是使用STM32CubeMX的一般步骤:

下载和安装STM32CubeMX:
你可以从STMicroelectronics的官方网站下载适用于你的操作系统的最新版本的STM32CubeMX,并按照安装向导进行安装。

打开STM32CubeMX:
打开STM32CubeMX应用程序,你将看到一个空白的项目窗口。

创建一个新项目:
在项目窗口中,点击"New Project"按钮,选择你的STM32微控制器型号,并选择你的开发板。

配置微控制器:
在配置选项卡中,你可以配置引脚映射、时钟设置、外设配置等。根据你的项目需求,进行相应的配置。

引脚映射:在Pinout & Configuration选项卡中,你可以选择每个引脚的功能,如GPIO、UART、SPI等,并进行相应的映射设置。

时钟设置:在RCC Configuration选项卡中,你可以配置系统时钟和外设时钟的频率和源。

外设配置:在Peripherals选项卡中,你可以选择需要使用的外设,并进行相应的配置,如UART、SPI、I2C等。

生成代码:
点击"Project"选项卡,在右侧窗口中选择你想要生成的代码类型(例如,基于HAL库的代码),然后点击"Generate Code"按钮。STM32CubeMX将根据你的配置生成相应的初始化代码。

导入到IDE:
将生成的代码导入到你选择的集成开发环境(IDE)中,例如Keil、IAR等。在IDE中,你可以编写你的应用程序代码,并进行编译和调试。

开发和编程:
在IDE中编写你的应用程序代码,并使用相应的编程工具将代码烧录到STM32微控制器中。你可以使用调试器进行单步调试和观察变量的值,以确保代码的正确性和功能的正常运行。

总结起来,使用STM32CubeMX可以简化STM32微控制器的配置和初始化过程,提高开发效率。它提供了直观的图形界面,帮助开发人员轻松配置引脚映射、时钟设置和外设配置,并生成相应的初始化代码,使得开发过程更加便捷。通过将生成的代码导入到集成开发环境中,你可以编写应用程序代码并进行编译、调试和烧录,从而完成STM32微控制器的开发和编程工作。

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

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

相关文章

6. Service详解

6. Service详解 文章目录 6. Service详解6.1 Service介绍6.2 Service类型6.3 Service使用6.3.1 实验环境准备6.3.2 ClusterIP类型的Service6.3.3 HeadLess类型的Service6.3.3.1 deployment和statefulset区别6.3.3.2 statefulset deployment 区别 6.3.4 NodePort类型的Service6.…

联邦蒸馏领域中,有哪些有意思的工作

联邦蒸馏领域中,有哪些有意思的工作 王婆卖瓜,自卖自夸。这个博客,我简要向大家推荐一下自己近期在联邦蒸馏方面的研究工作,按照心目中创新度从高到低进行排序,与工作的扎实程度以及发表的会议期刊等级无关。如有不妥…

扩展操作码指令格式

指令 操作码地址码 \quad \quad 判断几地址指令 开头4位不是全1, 则表示是三地址指令 开头4位全1, 后面4位不是全1, 则为二地址指令 前面12全1, 则为零地址指令 当然啦这只是一种扩展方法, 如果想扩展更多, 可以将1110留作扩展操作码 较短的操作码, 我们对它的译码和分析的时间…

测试:HTTP请求中,请求头(Headers)

请求头字段及其用途 在HTTP请求中,请求头(Headers)是包含了关于客户端环境和请求本身的信息的数据结构,它在每次请求时都会被发送到服务器。 请求头的字段非常多样,以下是一些常见的请求头字段及其用途的详细说明&am…

点云几何 之 判断某一点是否在三角形的边上(3)

点云几何 之 判断某一点是否在三角形的边上(3) 一、算法介绍二、算法实现1.代码2.结果 总结 一、算法介绍 判断某一点是否在三角形的边上 之前已经介绍了点在三角形的内外判断方法,这里增加点恰好在三角形边上的判断方法 (本质上…

节流防抖:提升前端性能的秘密武器(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

vue3使用mars3d实现地图轮播高亮,且每个区域颜色不一样

效果图(珙县就是轮播高亮的效果) 思路:初始化一张完整的地图,然后定时器去挨个生成每个县上的地图,并且覆盖在原来的位置,每到一定的时间,就清除之前生成高亮图并且生成下一张高亮图 如何引入地图 上篇文章已详细发过 略 父组…

【JavaWeb学习笔记】7 - Servlet入门开发

零、在线文档 Servlet 3.1 API Documentation - Apache Tomcat 8.0.53 一、Servlet基本介绍 1.为什么出现Servlet 提出需求:请用你现有的html css javascript,开发网站,比如可以让用户留言/购物/支付,你能搞定吗? 不能 这几个不能直接操作数据库 …

Java 语言关键字

Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量…

20231213给Ubuntu18.04.6LTS新加一块HDD机械硬盘

20231213给Ubuntu18.04.6LTS新加一块HDD机械硬盘 2023/12/13 22:50 rootrootrootroot-X99-Turbo:~$ cat /etc/issue Ubuntu 18.04.6 LTS \n \l sudo fdisk -l rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ sudo fdisk -lu Disk /dev/sda: 2.7 TiB, 300059298…

【源码解析】flink sql执行源码概述:flink sql执行过程中有哪些阶段,这些阶段的源码大概位置在哪里

文章目录 一. sql执行流程源码分析1. Sql语句解析成语法树阶段(SQL - > SqlNode)2. SqlNode 验证(SqlNode – >Operation)3. 语义分析(Operation - > RelNode)4. 优化阶段(RelNode - &…

LangChain 25: SQL Agent通过自然语言查询数据库sqlite

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

Java中的多态到底是什么?

Java中的多态到底是什么? 在Java中,多态是面向对象编程中的一个重要概念,它有助于提高代码的灵活性和可维护性。多态分为编译时多态和运行时多态。 编译时多态(静态多态): 编译时多态是指在编译阶段确定方…

2023全国大学生数据分析大赛A题完整论文教学

大家好呀,从发布赛题一直到现在,总算完成了全国大学生数据分析大赛A题某电商平台用户行为分析与挖掘完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 实…

透析回溯的模板

关卡名 认识回溯思想 我会了✔️ 内容 1.复习递归和N叉树,理解相关代码是如何实现的 ✔️ 2.理解回溯到底怎么回事 ✔️ 3.掌握如何使用回溯来解决二叉树的路径问题 ✔️ 回溯可以视为递归的拓展,很多思想和解法都与递归密切相关,在很多…

Windows 网络监控的内容和方式

Microsoft Windows是使用最广泛的操作系统之一,受到全球用户的青睐,Windows 设备与许多进程、服务和事件相关联,这些进程、服务和事件通常需要从单个控制台进行跟踪,这就是 Windows 网络监控工具派上用场的地方。Windows 网络监控…

项目总结-自主HTTP实现

终于是写完了,花费了2周时间,一点一点看,还没有扩展,但是基本功能是已经实现了。利用的是Tcp为网络链接,在其上面又写了http的壳。没有使用epoll,多路转接难度比较高,以后有机会再写&#xff0c…

一张图片组合一组动作就可以生成毫无违和感的视频!

你敢信,1张人物图片 1张动作动画,就可以生成一段视频。网友直呼:“主播/视频UP主可能快要下岗了!” (模型视频来源于网络) 本周,字节跳动联合新加坡国立大学发布了一款开源项目 MagicAnimate&…

(第63天)19C NONCDB 转 PDB

目前很多 19C 数据库依然是创建为 NONCDB 架构,但是未来 CDB 架构的使用是无法避免的,在 21C 版本开始 Oracle 官方将不再支持 NONCDB 架构。 环境信息 本文主要介绍以下如何在 19C 同版本下将 NONCDB 转为 CDB/PDB 架构(DBMS_PDB.DESCRIBE 方式),以下为测试环境信息: …