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的软件安装和配置的大致流程,后续会对重要的部分重点逐一展开介绍。

STM32开发(2)----CubeMX的安装和使用相关推荐

  1. 1、STM32开发-环境搭建-Keil5安装

    MDK Keil STM32开发环境搭建 一.准备 1.MDK 安装包获取 ​MDK安装官网下载,在官网选择MDK-Arm选项 ​ 在表单中填写个人信息,最后点击Submit提交,便自动进入软件下载界 ...

  2. buntu linux下建立stm32开发环境: GCC安装以及工程Makefile建立

    之前在e络盟的意法半导体掏了一个STM32开发板挺好的,却不想在window下开发,也不想用那么占内存的IAR MDK等软件,所以决定在ubuntu下建立该开发环境,像之前avr linux一样,找了 ...

  3. Ubuntu20.04安装STM32开发环境

    Ubuntu20.04安装STM32开发环境 鉴于很多开发者需要用到Linux系统进行嵌入式系统开发,ST的编程软件很多已经支持Linux系统,这篇文章讲讲如何在Ubuntu20.04系统种安装ST的 ...

  4. STM32开发入门及实战 (1)

    本博客的编写目的: 一.自我总结,记录. 二.分享,输出,加深思考. 三.不作细致如书本般编排,尽管那样的排版很好看,但是过于耗费时间,还有很多东西没有必要说明,完全可以自己去解决,但还是尽量做好排版 ...

  5. 使用simulink进行stm32开发1

    使用simulink进行stm32开发1 准备工作 步骤说明 为了学习MBD的开发流程,使用stm32+simulink进行开发实验,做此记录 准备工作 软件工具准备: 1. Matlab (Simu ...

  6. STM32开发入门及实战

    本博客的编写目的: 一.自我总结,记录. 二.分享,输出,加深思考. 三.不作细致如书本般编排,尽管那样的排版很好看,但是过于耗费时间,还有很多东西没有必要说明,完全可以自己去解决,但还是尽量做好排版 ...

  7. 配置clion用于stm32开发

    配置clion用于stm32开发 以stm32f103ZET6为例 2022.4.8更新(解决了OCD无法调试的问题) 之前配置完环境后,就只是实验了一下烧录的功能,一直没有尝试使用ocd的调试功能. ...

  8. eclipse+gcc STM32开发环境搭建及调试

    记录一下本人进行eclipse+gcc stm32开发环境的搭建过程,以便后续学习使用 参考资料如下: CubeMX+Eclipse+Jlink STM32开发环境搭建_小裘HUST的博客-CSDN博 ...

  9. VS Code 搭建stm32开发环境

    MCU免费开发环境 一般芯片厂家会提供各种开发IDE方案,通常其中就包括其自家的集成IDE,如: 意法半导体 STM32CubeIDE NXP Codewarrior TI CCS 另外也可以用ecl ...

最新文章

  1. python环境变量值_如何在python中读取Windows环境变量值?
  2. java pdf 多页转换为png格式的图片
  3. Windows Store App JavaScript 开发:获取文件和文件夹列表
  4. 程序员十大非技术面试问题及策略
  5. 服务器cpu_服务器CPU与GPU协同运算加速三巨头竞争
  6. 信息学奥赛C++语言:判断两位数
  7. 43 CO配置-控制-产品成本控制-成本对象控制-实际成本核算/物料分类帐-激活实际成本组件划分
  8. jmeter+ant+jenkins的自动化接口测试
  9. 【云计算平台】Hadoop单机模式环境搭建
  10. I.MX6 Linux kernel LVDS backlight enable
  11. windows ce操作系统能用哪个导航_微软的windows和苹果的mac操作系统,在技术难度上哪个更高...
  12. Mysql查询语句使用select.. for update导致的数据库死锁分析
  13. pscp使用详解 Windows与Linux文件互传工具
  14. c int转字符串_零基础如何学好Python 之int 数字整型类型 定义int()范围大小转换...
  15. HTML期末大作业~ 仿新浪微博个人主页html网站模板4个页面(HTML+CSS+JavaScript)
  16. mysql pxc 安装_MYSQL PXC 集群安装
  17. 电脑端/手机端获取京东pt_key和pt_pin的几种方式
  18. 如何用PDF编辑器将PDF文件拆分
  19. 南京林业大学本科毕业论文答辩PPT模板
  20. 用 Python 轻松将懂车帝视频转换为文本

热门文章

  1. 【WEB】语言代码缩写表大全(用于Accept-Language)
  2. 丰巢的吃相到底难看在哪呢?
  3. Twitter Inc.(TWTR)2020年第三季度收益电话会议记录
  4. 数字电视业务PSI-SI学习系列
  5. Windows10 桌面不停的闪烁问题
  6. 华为数通笔记-NDP原理
  7. 无版权?免费?无水印?高清大图?视频?
  8. ssd存储的SLC、MLC、TLC闪存芯片颗粒有什么区别?
  9. html电影详情页面,电影
  10. Xmind怎么打开?在线转换成PNG,JPG图片格式,无需安装其他软件