为了账号安全,请及时绑定邮箱和手机立即绑定

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

双击打开安装程序:

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.sycdn.imooc.com//5acb3c8700013dc501600160.jpg

https://img1.sycdn.imooc.com//5acb3c8700013dc501600160.jpg

https://img1.sycdn.imooc.com//5acb3c8700013dc501600160.jpg

2.3 下载STM32固件包

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

https://img1.sycdn.imooc.com//5acb3c8700013dc501600160.jpg

https://img1.sycdn.imooc.com//5acb3c8700013dc501600160.jpg

下载 STM32 固件包:

https://img1.sycdn.imooc.com//5acb3c8700013dc501600160.jpg

https://img1.sycdn.imooc.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 !


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Linux系统工程师
手记
粉丝
81
获赞与收藏
268

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消