继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

一文教你使用STM32CubeMX开发工具

良许Linux
关注TA
已关注
手记 229
粉丝 82
获赞 268

一文教你使用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/

双击打开安装程序:

https://img1.sycdn.imooc.com/656afabd0001fac705980027.jpg

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

https://img1.sycdn.imooc.com/656afabd000172c207000354.jpg

https://img1.sycdn.imooc.com/656afabe0001e36f07000354.jpg

https://img1.sycdn.imooc.com/656afabe0001672207000380.jpg

https://img1.sycdn.imooc.com/656afabf00011b1f07000382.jpg

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

https://img1.sycdn.imooc.com/656afabf00016c5c06270247.jpg

2.2 STM32CubeMX安装

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

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

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

https://img1.sycdn.imooc.com/656afac00001e64218200944.jpg

https://img1.sycdn.imooc.com/656afac100013aca18200944.jpg

https://img1.sycdn.imooc.com/656afac200016d2518200944.jpg

https://img1.sycdn.imooc.com/656afac30001c2c918200944.jpg

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

https://img1.sycdn.imooc.com/656afac40001104a18201080.jpg

https://img1.sycdn.imooc.com/656afac50001846218201080.jpg

https://img1.sycdn.imooc.com/656afac60001d1a018201080.jpg

安装路径不要带中文哦。

https://img1.mukewang.com/5acb3c8700013dc501600160.jpg

https://img1.mukewang.com/5acb3c8700013dc501600160.jpg

https://img1.mukewang.com/5acb3c8700013dc501600160.jpg

2.3 下载STM32固件包

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

https://img1.mukewang.com/5acb3c8700013dc501600160.jpg

https://img1.mukewang.com/5acb3c8700013dc501600160.jpg

下载 STM32 固件包:

https://img1.mukewang.com/5acb3c8700013dc501600160.jpg

https://img1.mukewang.com/5acb3c8700013dc501600160.jpg

3. STM32CubeMX界面介绍

3.1 STM32CubeMX启动界面介绍

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

654b3b6bc458853aef4119e6.jpg

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

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

654b0c48c458853aefa50242.jpg

3.2 STM32CubeMX项目界面介绍

654b3e50c458853aef4a9268.jpg

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

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

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

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

4. STM32CubeMX使用示例

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

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

654b07b8c458853aef97e428.jpg

4.1 新建工程

65489f15c458853aef82a498.jpg

6548a341c458853aef8eff7e.jpg

4.2 时钟模块配置

6548a609c458853aef9749d2.jpg

4.3 时钟系统配置

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

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

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

6548ab57c458853aefa51328.jpg

4.4 GPIO引脚配置

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

654b2a22c458853aef05bc48.jpg

654b2a9dc458853aef070fbb.jpg

6548b094c458853aefb3bbfd.jpg

6548b217c458853aefb77003.jpg

6548b1dac458853aefb6f02b.jpg

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

6548b3f8c458853aefbd1581.jpg

PE5 也需要配置:

6548b4ffc458853aefbfcb05.jpg

4.5 Cortex内核配置

SYS 配置,Debug 仿真器配置:

6549a3f9c458853aef71b943.jpg

NVIC(优先级分组)配置:

6549a49fc458853aef738525.jpg

4.6 生成工程源码

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

6549aaa8c458853aef838042.jpg

6549ac93c458853aef88a9ff.jpg

6549ad15c458853aef89baa5.jpg

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


6549adbac458853aef8bdafb.jpg

生成完毕,弹窗:

6549aef7c458853aef8eb97a.jpg

654b2ed2c458853aef165a9f.jpg

4.7 编写用户程序

654b3017c458853aef1a3b11.jpg

654b2f59c458853aef17d69d.jpg

4.8 硬件连接+烧录

硬件连接如图:

654b0764c458853aef97362b.jpg

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

6549d8dfc458853aef0d3917.jpg

6549d984c458853aef0ee7df.jpg

6549dbf3c458853aef16b5c0.jpg

4.9 烧录效果

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

654b068cc458853aef95872d.jpg

5. 总结

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

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

感谢各位看官,peace and love !


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP