手记

一文教你使用STM32CubeMX开发工具

一文教你使用STM32CubeMX开发工具

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

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

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

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

0. 前置阅读

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

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

https://www.lxlinux.net/e/stm32/stm32cubemx-tutorial.html

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

https://www.lxlinux.net/e/stm32/stm32-quick-start-for-beginner.html

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

https://www.lxlinux.net/e/stm32/five-ways-to-flash-program-to-stm32.html

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

https://www.lxlinux.net/e/stm32/create-stm32-hal-project-template.html

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 ,够你用的了,无需追求最新版。

也可以去官网下载:https://www.oracle.com/java/technologies/downloads/

双击打开安装程序:

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

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

2.2 STM32CubeMX安装

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

https://www.st.com/content/st_com/zh/stm32cubemx.html

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

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

安装路径不要带中文哦。

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 !


0人推荐
随时随地看视频
慕课网APP