一文教你使用STM32CubeMX开发工具

刚开始学习 STM32 的时候,不知道大家有没被外设驱动支配过的恐惧?

那么多的外设,那么多的选项,有可能一个选项没配置对,外设就工作不正常了,大大增加我们入行的难度。

针对这个问题,ST 公司很贴心地为我们推出了 STM32CubeMX ,通过这个工具,我们可以快速完成外设的配置,无需自己动手写一行代码,极大的保护了我们为数不多的头发!

但是,像这种工具,不建议大家过度使用,否则会阻碍你技术的成长。刚开始学 STM32 的时候,或者有需要快速验证 demo 的时候,可以用一下,其它时间,还是建议大家自己动手写代码,对自己的职业生涯更有好处。

0. 前置阅读

本文首发 良许嵌入式网www.lxlinux.net/e/ ,欢迎关注!

本文所涉及的源码及安装包如下(由于平台限制,请点击以下链接阅读原文下载):

www.lxlinux.net/e/stm32/stm...

如果你是个零基础的小白,连 STM32 都没见过,我也给你准备了一个保姆级教程,手把手教你搭建好 STM32 开发环境,并教你如何下载程序,简直业界良心!

www.lxlinux.net/e/stm32/stm...

如果你连代码都不知道怎么烧录到 STM32 的,可以参考下文,提供了 5 种代码烧录方式:

www.lxlinux.net/e/stm32/fiv...

如果你不想使用 STM32CubeMX,想自己搭一个属于自己的工程模板,可以参考下面这篇文章:

www.lxlinux.net/e/stm32/cre...

1. STM32CubeMX简介

STM32CubeMX 是 ST 公司开发的一款图形配置工具,可通过配置自动生成初始化代码(不是逻辑代码哦)。支持 Windows 和 Mac 系统。搭配不同系列的 STM32 Cube 固件包,几乎可支持 STM32 全系列芯片。

STM32CubeMX 为开发者提供了快速、方便的 STM32 微控制器配置和初始化方式。它大大简化了嵌入式开发过程,提高了开发效率,使开发者能够更专注于应用程序的开发和功能实现。

2. STM32CubeMX安装

这里一定要先搭建 Java 环境------ JRE 安装,再安装 STM32CubeMX ,因为 STM32CubeMX 是基于 Java 环境运行的。

2.1 安装包准备

  • JRE安装包

  • STM32CubeMX安装包

2.1 搭建Java环境------JRE安装

如果你电脑已经安装了 JRE,就不需要再重新安装了。但是要注意,STM32CubeMX 要求 JRE 版本在 1.7.0_45 以上,如果版本太老,需要重装一下。

可以使用我给的安装包安装,版本是1.8.0_271 ,够你用的了,无需追求最新版。

也可以去官网下载:www.oracle.com/java/techno...

双击打开安装程序:

接下来基本上一路下一步了,跟着图片操作即可。

如何判断 JRE 有没安装成功?可以测试一下,在 cmd 输入java -version ,如下图,能检测到版本就是安装成功。

2.2 STM32CubeMX安装

STM32CubeMX 在它的官网可以下载,网址如下:

www.st.com/content/st_...

建议用我给的安装包,毕竟官网服务器在国外下载速度非常慢,而且还要填个人信息。

接下来的安装步骤,请依次看下面的图片:

安装路径不要带中文哦。

2.3 下载STM32固件包

打开 STM32CubeMX,先设置一下仓库路径。仓库路径不能带中文,否则会出现奇奇怪怪的问题,之后加载固件包也会失败。

下载 STM32 固件包:

3. STM32CubeMX界面介绍

3.1 STM32CubeMX启动界面介绍

相信初学者打开 STM32CubeMX 一定是一脸懵逼,里面都是全英文的,不知道从何入手。这里先给大家简单讲解一下。

在新建工程这一栏里,我们最常用的是第一个,「ACCESS TO MCU SELECTOR」,它会弹出一个芯片列表供你选择,然后就会创建一个项目工程,你可以基于此项目进行项目开发。

下图是菜单栏的功能介绍:

3.2 STM32CubeMX项目界面介绍

在这个界面的左侧,我们可以快速配置芯片的基本参数及外设,比如:系统内核、Timer、串口、DMA,等等。

右侧主界面有一颗大大的芯片,我们可以选择具体的引脚进行配置,而且可以修改每个引脚的标签,还是比较灵活。

全部配置完成之后,就可以生成一个对应的工程文件,我们就无需自己动手编写外设的驱动文件了,十分方便。

具体如何操作,请看下面的示例。

4. STM32CubeMX使用示例

在本节里,我将用 STM32CubeMX 做一个宇宙级跑马灯小项目,带大家入门 STM32CubeMX。

使用的是正点原子战舰 STM32 开发板,芯片型号是 STM32F103ZET6,72M 主频,512K 片上 flash ,64K SRAM,十分强大。

4.1 新建工程

4.2 时钟模块配置

4.3 时钟系统配置

STM32 的时钟树其实不难,只是看起来比较吓人。大家按照下图,从 1~5 一个个配置,就可以完成时钟系统配置。

F1 系列芯片的主频是 72Mhz,可以手动在图中的 HCLK 改为 72 ,就可以将主频设置为最大。

顺带一提,STM32F4 系列芯片的主频是 180Mhz;STM32F7 系列芯片的主频是 216Mhz;STM32H7 系列芯片的主频是 400Mhz,大家使用不同的芯片,记得要将 HCLK 设置为对应的主频。

4.4 GPIO引脚配置

根据原理图,LED0 对应 PB5,LED1 对应 PE5,所以我们的跑马灯项目需要将 PB5、PE5 设置为 GPIO 输出模式。

GPIO 模式设置完后,配置 GPIO 详细内容:

PE5 也需要配置:

4.5 Cortex内核配置

SYS 配置,Debug 仿真器配置:

NVIC(优先级分组)配置:

4.6 生成工程源码

保存路径记得也不要有中文哦。

配置了这么多步,终于可以生成代码啦,激动的心,颤抖的手。

生成完毕,弹窗:

4.7 编写用户程序

4.8 硬件连接+烧录

硬件连接如图:

硬件连接完成后再上电,图qa。

4.9 烧录效果

绿灯和红灯交替闪烁,间隔500ms。

5. 总结

STM32CubeMX 能帮助开发者通过直观的图形界面快速完成 STM32 微控制器的硬件配置,外设初始化以及中间件设置等工作。通过 STM32CubeMX,开发者可以大幅提高开发效率,降低开发难度,尤其是对于刚接触 STM32 的新手。

STM32CubeMX 虽然方便,但不建议大家过度依赖它,否则会影响你的个人能力发展。只有你在刚入门 STM32,或者需要快速验证一些代码,才建议大家使用这个软件。

感谢各位看官,peace and love !


另外,想进大厂的同学,一定要好好学算法,这是面试必备的。这里准备了一份 BAT 大佬总结的 LeetCode 刷题宝典,很多人靠它们进了大厂。

刷题 | LeetCode算法刷题神器,看完 BAT 随你挑!

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

推荐阅读:

欢迎关注我的博客:良许嵌入式教程网,满满都是干货!

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言