STM32开发(2)----CubeMX的安装和使用

news2024/11/16 23:48:13

CubeMX的安装和使用

  • 前言
  • 一、CubeMX简介
  • 二、软件安装
  • 二、软件使用
    • HSE 和 LSE 时钟源设置
    • 时钟树配置
    • 功能引脚配置
    • 配置 Debug 选项
    • 生成工程源码
  • 总结


前言

本章对STM32CubeMX的安装和使用做简单介绍

一、CubeMX简介

STM32CubeMX是一种图形化工具,它允许非常简单地配置STM32微控制器和微处理器,并通过逐步过程为Arm®Cortex®-M内核生成相应的初始化C代码,或为Arm™Cortex®-a内核生成部分Linux®设备树。

STM32CubeMX 具有如下特性:
① 直观的选择 MCU 型号,可指定系列、封装、外设数量等条件;
② 微控制器图形化配置;
③ 自动处理引脚冲突;
④ 动态设置时钟树,生成系统时钟配置代码;
⑤ 可以动态设置外围和中间件模式和初始化;
⑥ 功耗预测;
⑦ C 代码工程生成器覆盖了 STM32 微控制器初始化编译软件,如 IAR, KEIL, GCC;

在网上有时候会发现有的人下载STM32Cube,这里解释下STM32CubeMX 和 STM32Cube 的关系, STM32Cube 包含 STM32CubeMX 图形工具和 STM32Cube 库两个部分,使用 STM32CubeMX 配置生成的代码,是基于 STM32Cube 库的。
在这里插入图片描述

二、软件安装

STM32CubeMX软件获取方式很多,直接从 ST官方下载也是免费的,下载地址为: https://www.st.com/en/development-tools/stm32cubemx.html,安装过程也比较简单,我下载的版本为6.3.0,可以使用更高的版本,如6.6.0,会比较智能,直接双击 SetupSTM32CubeMX-xxxx.exe,安装步骤如下:
1.启动安装
在这里插入图片描述
2.接受许可协议
在这里插入图片描述
在这里插入图片描述
3.制定安装路径
在这里插入图片描述
4.选择创建图标和快捷方式
在这里插入图片描述
5.自动安装组件包。
在这里插入图片描述
6.软件安装完成
在这里插入图片描述

二、软件使用

前面讲到了STM32CubeMX 和 STM32Cube 的关系,如果想查看当前已下载的STM32Cube可以在这里看到,现在STM32CubeMX已经很智能了,如果你选择的芯片没有STM32CubeMX包,软件会自动下载。这里不用单独去下载STM32Cube固件包。
在这里插入图片描述
下面我们来体验一下STM32CubeMX,新建项目,方法有两种如下图,这里
在这里插入图片描述
新建工程后,可能会弹出下载窗口,提示需要联网下载一些文件,可能等待时间比较长,可以直接选择取消即可。我们可以通过关闭自动更新设置来禁止弹出这个窗口。
在这里插入图片描述
可以通过输入芯片型号后缀快速搜索到对应芯片,右下角选择你的芯片对应的确切型号,然后点击Start Project
在这里插入图片描述
新建好项目,接下来我们进行配置,配置的一般步骤如下:

  1. HSE 和 LSE 时钟源设置
  2. 时钟系统(时钟树)配置
  3. 功能引脚配置
  4. 配置 Debug 选项
  5. 生成工程源码
    按照这样的顺序我们来简单配置一下

HSE 和 LSE 时钟源设置

RCC(Reset and Clock Control):复位和时钟控制
HSE:外部高速时钟
LSE:外部低速时钟
CrystakCeramic Resonator :外部晶振时钟源
BYPASS Clock Source :旁路时钟源。所谓旁路模式,是指无需上面提到的使用外部晶体时所需的芯片内部时钟驱动组件,直接从外界导入时钟信号。犹如芯片内部的驱动组件被旁路了。

有源晶振一般是四脚封装,电源、地线、振荡输出和一个控制端【或者悬空端】。相比无源晶体,有源晶振本身就是个完整的振荡器件,只需要供给适当的电源就能输出时钟,无须额外的振荡驱动匹配电路。其时钟输出不依赖于外部器件振荡电路,相对更不容易受外部线路不稳定性的影响。自然其价格往往要高于无源晶体,不过其输出电平幅度往往不能像无源晶体那样随着应用电路的变化而变化。

不难看出,如果使用有源晶振作为外部时钟源的话,我们应该配置为HSE旁路模式,而不是HSE晶体模式。将有源晶振的输出脚接到MCU的OSC_IN脚。

这里根据我们的开发板,选择如下
在这里插入图片描述

时钟树配置

进入 Clock Configuration 配置栏之后可以看到,界面展现一个完整的 STM32F1 时钟系统框图。从这个时钟树配置图可以看出,配置的主要是外部晶振大小,分频系数,倍频系数以及选择器。在我们配置的工程中,时钟值会动态更新,如果某个时钟值在配置过程中超过允许值,
那么相应的选项框会红色提示。

时钟树这部分比较重要,后面会专门用一片内容来介绍。
在这里插入图片描述

功能引脚配置

这部分属于功能配置,后面会分章节详细,这里不做详细解释了。
在这里插入图片描述

配置 Debug 选项

CubeMX 默认把 Debug 选项关闭了,这里需要打开Debug 选项,否则可能会导致错误。具体debug选项很多,根据你的开发板情况进行选择。
在这里插入图片描述

生成工程源码

输入项目名称,项目存放路径,选择IDE和对应的版本,以及固件包
在这里插入图片描述
打开 Project Manager-> Code Generator 选项, Generated files 生成文件选项:

建议勾选 Generate peripheral initialization as a pair of ‘.c/.h’files per peripheral,勾选这个选项的话将会将每个外设单独分开成一组.c、 .h 文件,使得代码结构更加的清晰,增强代码的可读性。

建议勾选生成工程时仅仅复制用到的库,从而达到减小工程大小的目的。 CubeMX 默认勾选了复制所有的库,即工程中不使用到的代码也会复制进来。
在这里插入图片描述
最后点击GENERATE CODE,生成代码
在这里插入图片描述

点击Open Project即会通过keil5 IDE打开代码

总结

本章简单介绍了STM32CubeMX的软件安装和配置的大致流程,后续会对重要的部分重点逐一展开介绍。

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

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

相关文章

C++:指针

目录 1.指针 1.1指针三要素: 1.2修饰结构体struct 1.3 Pointers of Pointers 1.4constant修饰 pointer 2.指针和数组 2.1.数组的地址是连续的 2.2pointer arithmetic:指针的代数运算 2.3指针和数组的不同 3.内存分配: 1.指针 1.1指针三要素…

内卷潮不断袭来,智己汽车主打高端市场有何胜算?

当前,新能源汽车赛道已进入白热化,2022年全年产销迈入700万辆规模,分别达到705.8万辆和688.7万辆,同比分别增长96.9%和93.4%,市占率为25.6%。在政策和市场的双轮驱动下,新能源汽车市场的竞争愈发激烈。为掌…

SpringCloudAlibaba和nacos整合sentinel的简单案例

文章目录1.简单代码1.1依赖1.2配置文件配置1.2.1项目yml配置文件1.2.2nacos配置文件1.2controller1.3 service2.sentinel下载运行3.运行验证nacos的安装部署SpringCloudAlibaba整合nacos1.简单代码 1.1依赖 SpringBoot 2.3.12.RELEASE SpringCloudAlibaba 2.2.8.RELEASE <…

自动识别查找特定的串口号 比如设备管理器中Modem属性里的串口 按这个方法可以获取设备管理器任意信息。C++

1.目标&#xff1a; 自动识别查找特定的串口号 2.注册表里搜串口号 设备管理器中所有的信息都在注册表中有&#xff0c;那么我直接在注册表里搜COM143。 搜到了这个&#xff0c;但这里有2个名称key相同的。后面193,192还是可能会变的&#xff0c;不方便精确识别。继续搜。 这…

从0到1一步一步玩转openEuler--01 openEuler操作系统介绍

1 openEuler操作系统介绍 openEuler是一款开源操作系统。当前openEuler内核源于Linux&#xff0c;支持鲲鹏及其它多种处理器&#xff0c;能够充分释放计算芯片的潜能&#xff0c;是由全球开源贡献者构建的高效、稳定、安全的开源操作系统&#xff0c;适用于数据库、大数据、云…

JVM 基础 - Java 垃圾回收机制

Java 垃圾回收机制一&#xff1a;哪些内存需要回收二&#xff1a;怎么定义垃圾1、引用计数算法2、可达性分析算法3、方法区的回收三&#xff1a;引用类型1、强引用2、软引用3、弱引用4、虚引用四&#xff1a;怎么回收垃圾1、垃圾回收算法标记 - 清除算法标记 - 整理算法标记 - …

STM32MP157开发板Linux+Qt项目实战:智慧家庭

stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器&#xff0c;集成2个Cortex-A7核和1个Cortex-M4 核&#xff0c;A7核上可以跑Linux操作系统&#xff0c;M4核上可以跑FreeRT…

第八章 idea集成github

第八章 idea集成github 第一节 给 IDEA 安装github插件 在IDEA中连接github需要在IDEA中github插件(如果有的话就不用安装了) 我这个是已经安装的状态 &#xff08;安装过程中按照提示安装即可&#xff09; 第二节 在 IDEA 中设置github账号 方式一 用户名密码登录 这种方…

HTTPS、SSH共享端口的--工具SSLH

目录 使用的环境 一、安装SSLH 二、配置nginx服务器 三、配置SSLH 三、启用并启动 sslh 服务以更新更改 四、测试 使用的环境 Ubuntu作为靶机&#xff0c;centos7做测试 一、安装SSLH 在Ubuntu上安装命令如下 $ sudo apt-get install sslh 安装 SSLH 时&#xff0c;将…

【LeetCode】最长同值路径 [M](二叉树)

687. 最长同值路径 - 力扣&#xff08;LeetCode&#xff09; 一、题目 给定一个二叉树的 root &#xff0c;返回 最长的路径的长度 &#xff0c;这个路径中的 每个节点具有相同值 。 这条路径可以经过也可以不经过根节点。 两个节点之间的路径长度 由它们之间的边数表示。 示…

阿里二面: BigKey、HotKey 问题严重,该如何 预防和解决

BigKey、HotKey是 日常生产中经常会碰到由于redis集群的不当访问&#xff0c;造成的线上问题。 而且&#xff0c;这也是常见的面试题。 在咱们社群的面试交流中&#xff0c;有很多小伙伴在面试网易、滴滴、京东等大厂的二面、三面中遇到了这个问题。 前段时间&#xff0c;有…

Hadoop基础之《(9)—整合HBase+Phoenix+Hive》

一、HBase简介 1、HBase定义 Apache HBase是以HDFS为数据存储的&#xff0c;一种分布式、可扩展的NoSQL数据库&#xff08;非关系型&#xff0c;以k,v的形式存储数据&#xff09;。 HBase可以认为是以HDFS为存储的数据库。 2、HBase数据模型 &#xff08;1&#xff09;HBase的…

Python---方法(普通方法,类方法,静态方法)

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;Python基础已经更新完&#xff0c;接下来是Python面向对象的知识点。 方法前言普通方法类方法静态方法总结前言 方法是什么&#xff1f; 一个类&#xff0c;它有特征&#xff0c;也有动作&#xff0…

华为OD机试(2023)真题目录(Java JS Python)

本专栏算法题均来自2023华为OD机考新题库。 本专栏算法题全部支持Java、JavaScript、Python语言实现。 注意&#xff1a;本专栏只包含新题库题目&#xff0c;不包含老题库题目。如果想同时拥有新、老题库全部题目&#xff0c;请订阅华为OD机试&#xff08;2022&2023&#…

c/c++开发,C++类的常用基本函数实现案例

一、C类的常用基本函数 C类的常用基本函数主要包括&#xff1a;默认构造函数&#xff0c;普通构造函数&#xff0c;拷贝构造函数&#xff0c;析构函数&#xff0c;赋值&#xff08;&#xff0c;运算符重载&#xff09;函数&#xff1a; 1.默认构造函数&#xff0c;在没有显式初…

苹果电脑怎么用移动硬盘ntfs?教你三招方法

苹果电脑怎么用移动硬盘ntfs&#xff1f;Mac可以正常读取NTFS外置设备上的文件&#xff0c;但是不能够正常往里面写入文件&#xff0c;同样不能对上面的文件进行编辑、删除、移动等&#xff0c;如果想要进行这些操作。 一、什么是NTFS NTFS是一个日志文件系统&#xff0c;这意…

稍纵即逝,读博期间要注意的事情 / 读博期间一定不要做的事

稍纵即逝&#xff0c;读博期间要注意的事情 读博期间一定不要做的10件事 tip&#xff1a;配图除了缓解文章疲劳&#xff0c;就没有其它意图了。 时间稍纵即逝&#xff0c;博士期间的科研时间其实非常紧张和短缺。对于刚入学的博士新生&#xff0c;尤其是直博生和长学制&#…

DMA驱动开发---认识DMA

DMA定义&#xff1a; DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预&#xff0c;通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。 DMA传输方式&#xff1a; DMA的作用就是实现数据的直接传输&#xff0c;而去掉了传统数…

Go 恶意软件增多,分析两个新发现的零检出样本

由于 Go 良好的跨平台特性&#xff0c;在多个操作系统与架构上都能运行&#xff0c;所以最近使用 Go 语言编写的恶意软件越来越多&#xff0c;每周都会发现大量的新样本。 在四月末&#xff0c;研究人员通过蜜罐发现了两个新的变种&#xff08;Backdoorit和 Caligula&#xff…

AOSP 8.0 系统启动概要

目录 一、Android 系统启动流程图 二、系统启动阶段 三、 系统重要进程 3.1 父进程 3.2 重量级进程 一、Android 系统启动流程图 备注&#xff1a;&#xff08;图片引用gityuan&#xff09; 二、系统启动阶段 step1. 启动电源及系统&#xff1a;电源按下后&#xff0c;引…