STM32CubeMX安装及使用分享

说是教程,属实是不敢当,只是把自己觉得较为正式的方式分享给各位,如有问题请提出大家一起讨论。


文章目录

    • 软件下载
    • 软件安装
    • 软件使用
      • 开发板工程
      • 单片机工程
        • 单片机工程创建
        • 单片机工程配置界面
        • 单片机工程具体配置
          • 引脚功能配置
          • 系统时钟配置
          • 工程配置
            • Project
            • Code Generator
            • Advanced Settings
          • 生成


软件下载

  1. 搜索STM32CubeMX。官方链接:
    STM32Cube initialization code generator
    ​​​​在这里插入图片描述

  2. 获取软件前建议注册、登录账号。登录后右上角会显示个人信息,才会出现 “Get Software” 按钮。​​
    在这里插入图片描述

  3. 点击 “Get Software” 按钮,跳转到下方列表,选择合适版本:
    在这里插入图片描述

  4. 同意协议后,开始下载
    在这里插入图片描述


软件安装

此软件安装过程十分经典,同意协议后一直下一步即可,固态硬盘电脑,安装路径默认即可。


软件使用

  • 软件启动后界面如下
    在这里插入图片描述

  • 其中,中间给出了三个选项按钮,我先略说一下中间的开发板选择按钮和一些软件好用的功能,后面大篇幅再讲单片机按钮的内容
    在这里插入图片描述

开发板工程

为什么要先讲开发板工程呢?
一是大体内容相同,而我所看到的各种教程,讲开发板的少,初识STM32的同学不知道怎么找资料,不知道怎么用,而单片机,大家都知道上网去查手册,所以先讲讲开发板的界面;
二是开发板其中很多界面和单片机界面类似,一通百通

  • 如果购买了或者运气好获得了官方的开发板,那可以选择中间按钮 “ACCESS TO BOARD SELECTOR” ,进入后的界面如下
    在这里插入图片描述

    • 在首次或者每隔一段时间启动STM32CubeMX时,软件都会从服务器更新数据,等待即可自动完成
      在这里插入图片描述

    • 如果软件运行过,且不需要更新的话,直接Cancel也是没问题的,可后面手动点击首页的Update更新,不再赘述

  • 右侧列表是选型列表

    • 由于我们大多数开发,都是基于某型的MCU或者MPU(截至当前ST的产品线)进行自定义开发,除非基于官方开发板的项目,否则均不选择上述第二个按钮,我们直接选择第一个按钮创建基于芯片的新项目即可
      在这里插入图片描述

    • 当然我还要在此提一句,如果有需要参考官方开发板设计的需求,那么查询你所要的单片机型号是否有开发板,如果存在,右侧列出并选择:

  • 具体的ST开发板产品线如下:
    在这里插入图片描述

  • 一般我们可以选择根据单片机查找开发板
    在这里插入图片描述

  • 勾选需要的型号,例如我选择了F4系列后,右边列表选择F411开发板,则上方会出现详细资料,这和官网的资料一致,免去了官网查找的麻烦
    在这里插入图片描述

  • 此处提及几个要点

    1. 点击列表左侧的⭐,可以进行收藏,收藏在左上角的Board Filters下方的星星处,一旦有了收藏后,星星即变为蓝色,可在里面收藏常用型号的芯片和开发板

    2. Docs选项卡中有资料:BOM、原理图、手册等等,右侧是Datasheet,按需下载
      在这里插入图片描述

    3. 下载后的文件都在用户目录下,直接复制到资源管理器(此电脑)地址栏即可

%userprofile%/STM32Cube/Repository

在这里插入图片描述


那么经过这一番操作,我们基本熟悉了软件的大致布局,我们接下来切换到单片机选择部分,有两种方式:

  • 当前页面左上角直接切换
    在这里插入图片描述

我想,经过对比,你一定看出了这三个按钮的关系其实是一致的,在当前页面直接选择
在这里插入图片描述

此按钮也可

  • 我们也可以关闭当前页面,恢复到初始页面重新选择
    在这里插入图片描述

单片机工程

单片机工程创建
  1. 那么经过一堆废话,到了最常用的部分,点击进入后,填入单片机型号
    在这里插入图片描述

  2. 直接双击列表中型号或选中后右上角启动均可
    在这里插入图片描述

  3. 创建工程后,我们开始配置工作

单片机工程配置界面
  1. 上面一行是几大核心配置,左侧一列是具体外设及GPIO等配置
    在这里插入图片描述

  2. 时钟配置
    在这里插入图片描述

  3. 工程配置
    在这里插入图片描述

单片机工程具体配置

此处我们还是以最简单的点灯为例子,进行从系统时钟、调试口、GPIO等的配置

引脚功能配置
  1. RCC,按需开启外部或内部时钟,开启后,右侧引脚会有变化,请自行探索,而配置下方是详细配置
    在这里插入图片描述

  2. 我们可以选择最常见的SWD调试接口
    在这里插入图片描述

  3. 例如我们选择PA1作为从电源 -> 电阻 -> LED -> IO灌入的接法,那么点击PA1引脚,选择GPIO_Output
    在这里插入图片描述

  4. GPIO默认输出低电平,驱动LED一般配置为推挽输出,所以无上拉也无下拉,最后的亮灭由程序决定
    在这里插入图片描述

    • 最下面还有个自定义标签功能User Label,可以给IO自定义名称,也就相当于写在头文件中的 “#define”
      在这里插入图片描述
系统时钟配置

我们已经在RCC页面配置了内部或者外部时钟,那么我们就要在时钟配置界面进行各部分的详细配置
在这里插入图片描述

在选择为HSE后,则外部时钟源高亮,内部未选择,则没有连接
在这里插入图片描述

将这里的8改成电路上的实际外部晶振数值,一般系统的总线频率我们都配置为最大,这样获得更好的效果
在这里插入图片描述
- 这里我们先不要管其他外设的时钟频率,先输入想要的总线时钟,回车后软件会自动配置,最后只需要检查即可
在这里插入图片描述
- 如果时钟配置有问题,会提示,我们点击OK尝试
在这里插入图片描述
接着,后面的外设就都被自动配置完成
在这里插入图片描述
如果对个别外设有特殊需求,再手动修改,否则即完成
在这里插入图片描述
到此,MCU配置相关的部分已经基本完成,下面进行的是工程配置

工程配置
Project

在这里插入图片描述

  • 工程名称:
    • 规范地按照你的习惯起名字,注意不要有中文符号和空格等问题
  • 工程位置:
    • 位置自行选择,还是中文路径的问题,为避免编译器问题,请养成良好习惯
  • 编译工具的配置:
    • 大多数初学者入门包括很多工程师必不可少都在用Keil
      • 现在STM32推出了他们的CLT包支持VSCode官方插件直接编译调试,还有STM32CubeIDE等
    • 这里我们还是选大多数人用的Keil,版本按照安装的版本,我的是V5最新版,选择大版本V5即可

其他部分保持默认

Code Generator

在这里插入图片描述
这里修改两处:

  1. 我们只需要复制工程所需要的库即可
    怎么理解这句话,比如我们没有用到USB、IIC、串口等等的功能,但在配置页面勾选了一些功能,那么在这里勾选了All used libraries… 的话,就会使得工程目录内存较大,可以选 仅使用必要的库
  2. 勾选生成官方的.c和.h库
Advanced Settings

里面有些高级配置,比如使用LL库在这里配置,还有
一些寄存器调用等高级配置,若你需要配置它的时候,说明你已经不再适合读这篇文章了

生成

最后,点击右上角大大的按钮,创建工程
在这里插入图片描述

  • 若首次配置这个型号MCU的工程,因为没有HAL库的Firmware,故提示需要下载。
    Yes即可

在这里插入图片描述

  • 登录ST账号
    在这里插入图片描述
  • 登录后在Help最后一项中可以看到
    在这里插入图片描述

在这里插入图片描述

  • 等待下载、安装完成
    在这里插入图片描述
    在这里插入图片描述
  • 最后弹出此对话框表示成功
    在这里插入图片描述
    Open Folder 表示打开工程文件夹
    里面是STM32CubeMX的工程文件: xxx.ioc和Keil工程文件等,可以在此添加其他文件和版本管理
    在这里插入图片描述

Open Project 表示选择直接用Keil打开工程,接下来直接写代码更方便


下篇博客将会分享使用官方CLT配合VSCode的生成和代码编辑方法

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

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

相关文章

MySQL报错解决过程

我在调试datagrip的时候,显示拒绝连接,开始的时候,我以为只是服务没有开启,结果到后来在网上搜索各种解决办法无果后,就选择卸载,卸载之后安装新的MySQL 以下就是我的解决过程。 如果只是在使用外置软件&…

动态规划-62.不同路径-力扣(LeetCode)

一、题目解析 机器人只能向下或向左,要从Start位置到Finish位置。 二、算法原理 1.状态表示 我们要求到Finish位置一共有多少种方法,记Finish为[i,j],此时dp[i,j]表示:到[i,j]位置时,一共有多少种方法,满…

Qt开发:项目视图(Item Views)的介绍和使用

文章目录 一、清单视图(List View)1.1 基本概念1.2 使用示例(文字列表)1.3 图标文字(图标模式)1.4 常用设置1.5 完整示例 二、树视图(Tree View)2.1 基本概念2.2 常用类简介2.3 快速…

GoWeb开发(基础)

Go(Golang)是一种高效、简洁的编程语言,特别适合Web开发。以下是详细的Go Web开发指南,涵盖从基础到进阶的内容。 --- 一、Go Web开发基础 1. 标准库 net/http Go 内置 net/http 包,支持快速构建 Web 服务。 - 基本示…

GSENSE2020BSI sCMOS科学级相机主要参数及应用场景

GSENSE2020BSI sCMOS科学级相机是一款面向宽光谱成像需求的高性能科学成像设备,结合了背照式(Back-Side Illuminated, BSI)CMOS技术与先进信号处理算法,适用于天文观测、生物医学成像、工业检测等领域。以下是其核心特点及技术细节…

【日撸 Java 三百行】Day 9(While语句)

目录 Day 9:While 语句的基本使用方法 一、基础知识及案例分析 二、代码及测试 拓展:流程控制语句专题补充 小结 Day 9:While 语句的基本使用方法 Task: while 语句本质上比 for 更基础, 因此可以替代后者. 但 for 在很多时候…

React 第三十七节 Router 中 useOutlet Hook的使用介绍以及注意事项

React Router 中的 useOutlet 是 v6 版本新增的 Hook&#xff0c;用于在父路由组件中访问当前嵌套的子路由元素。它提供了比 <Outlet> 组件更灵活的控制方式&#xff0c;适合需要根据子路由状态进行动态处理的场景。 一、useOutlet的基本用法 import { useOutlet } fro…

TDengine 在智慧油田领域的应用

简介 智慧油田&#xff0c;亦称为数字油田或智能油田&#xff0c;是一种采用尖端信息技术与先进装备的现代油田开发模式。该模式通过实时更新油气田层析图及动态生产数据&#xff0c;显著提高了油气田的开发效率与经济价值。 信息技术在此领域发挥着至关重要的作用&#xff0…

关于AI 大数据模型的基础知识 杂记

一、LM Studio LM Studio下载地址&#xff1a;LM Studio - Discover, download, and run local LLMshttps://lmstudio.ai/LM Studio是使用electron架构&#xff0c;引用的llama.cpp库。 下载后的模型存储于 /User/Admin/.lmstudio/models中。 二、llama.cpp库下载地址 llam…

2025数维杯数学建模竞赛B题完整参考论文(共38页)(含模型、代码、数据)

2025数维杯数学建模竞赛B题完整参考论文 目录 摘要 一、问题重述 二、问题分析 三、模型假设 四、定义与符号说明 五、 模型建立与求解 5.1问题1 5.1.1问题1思路分析 5.1.2问题1模型建立 5.1.3问题1求解结果 5.2问题2 5.2.1问题2思路分析 5.2.2问题2…

利用GPT实现油猴脚本—网页滚动(优化版)

在浏览网页的时候&#xff0c;发现有的网页没有直达最前这样的功能&#xff0c;所有心血来潮利用ChatGPT写了一个油猴脚本以实现此功能&#xff0c;在网站上出现一个可以自由拖动的滑块。 声明&#xff1a;引用或二创需注明出处。 如图&#xff1a; 点击即可直达当前网页最前、…

MySQL基础关键_013_常用 DBA 命令

目 录 一、MySQL 用户信息存储位置 二、新建用户 1.创建本地用户 2.创建外网用户 三、用户授权 1.说明 2.实例 四、撤销授权 五、修改用户密码 六、修改用户名、主机名/IP地址 七、删除用户 八、数据备份 1.导出数据 2.导入数据 &#xff08;1&#xff09;方式…

计算机视觉与深度学习 | 图像匹配算法综述

图像匹配算法综述 图像匹配 图像匹配算法综述一、算法分类二、经典算法原理与公式1. **SIFT (Scale-Invariant Feature Transform)**2. **ORB (Oriented FAST and Rotated BRIEF)**3. **模板匹配(归一化互相关,NCC)**4. **SuperPoint(深度学习)**三、代码示例1. **SIFT 特…

切比雪夫不等式详解

切比雪夫不等式详解 一、引言 切比雪夫不等式&#xff08;Chebyshev’s Inequality&#xff09;是概率论和统计学中最重要的基本定理之一&#xff0c;由俄国数学家切比雪夫&#xff08;P. L. Chebyshev&#xff0c;1821-1894&#xff09;提出。它为我们提供了一个强大工具&am…

霸王茶姬微信小程序自动化签到系统完整实现解析

霸王茶姬微信小程序自动化签到系统完整实现解析 技术栈&#xff1a;Node.js 微信小程序API MD5动态签名 一、脚本全景架构 功能模块图 #mermaid-svg-0vx5W2xo0IZWn6mH {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-s…

气动带刮刀硬密封固定式对夹球阀:专为高粘度、强腐蚀性介质设计的工业解决方案-耀圣

气动带刮刀硬密封固定式对夹球阀&#xff1a;专为高粘度、强腐蚀性介质设计的工业解决方案 在石油化工、锂电材料、污水处理等高难度工况中&#xff0c;带颗粒的高粘度介质、料浆及强腐蚀性流体对阀门的性能提出了严苛要求。 气动带刮刀硬密封固定式对夹球阀凭借其独特的结构…

Filecoin存储管理:如何停止Lotus向特定存储路径写入新扇区数据

Filecoin存储管理&#xff1a;如何停止Lotus向特定存储路径写入新扇区数据 引言背景问题场景解决方案步骤1&#xff1a;修改sectorstore.json文件步骤2&#xff1a;重新加载存储配置步骤3&#xff1a;验证更改 技术原理替代方案最佳实践结论 引言 在Filecoin挖矿过程中&#x…

互联网大厂Java求职面试:高并发系统设计与架构实战

互联网大厂Java求职面试&#xff1a; 高并发系统设计与架构实战 第一轮提问&#xff1a;基础概念与核心原理 技术总监&#xff08;严肃&#xff09;&#xff1a;郑薪苦&#xff0c;你对JVM的内存模型了解多少&#xff1f;能说说堆、栈、方法区的区别吗&#xff1f; 郑薪苦&a…

AD原理图复制较多元器件时报错:“InvalidParameter Exception Occurred In Copy”

一、问题描述 AD原理图复制较多元器件时报错&#xff1a;AD原理图复制较多元器件时报错&#xff1a;“InvalidParameter Exception Occurred In Copy”。如下图 二、问题分析 破解BUG。 三、解决方案 1、打开参数配置 2、打开原理图优先项中的通用配置&#xff0c;取消勾选G…

网络研讨会开发注册中, 5月15日特励达力科,“了解以太网”

在线研讨会主题 Understanding Ethernet - from basics to testing & optimization 了解以太网 - 从基础知识到测试和优化 注册链接# https://register.gotowebinar.com/register/2823468241337063262 时间 北京时间 2025 年 5 月 15 日 星期四 下午 3:30 - 4:30 适宜…