当前位置: 首页 > news >正文

STM32CubeMX安装及使用分享

说是教程,属实是不敢当,只是把自己觉得较为正式的方式分享给各位,如有问题请提出大家一起讨论。


文章目录

    • 软件下载
    • 软件安装
    • 软件使用
      • 开发板工程
      • 单片机工程
        • 单片机工程创建
        • 单片机工程配置界面
        • 单片机工程具体配置
          • 引脚功能配置
          • 系统时钟配置
          • 工程配置
            • Project
            • Code Generator
            • Advanced Settings
          • 生成


软件下载

  1. 搜索STM32CubeMX。官方链接:
    STM32Cube initialization code generator
    ​​​​在这里插入图片描述

  2. 获取软件前建议注册、登录账号。登录后右上角会显示个人信息,才会出现 “Get Software” 按钮。​​
    在这里插入图片描述

  3. 点击 “Get Software” 按钮,跳转到下方列表,选择合适版本:
    在这里插入图片描述

  4. 同意协议后,开始下载
    在这里插入图片描述


软件安装

此软件安装过程十分经典,同意协议后一直下一步即可,固态硬盘电脑,安装路径默认即可。


软件使用

  • 软件启动后界面如下
    在这里插入图片描述

  • 其中,中间给出了三个选项按钮,我先略说一下中间的开发板选择按钮和一些软件好用的功能,后面大篇幅再讲单片机按钮的内容
    在这里插入图片描述

开发板工程

为什么要先讲开发板工程呢?
一是大体内容相同,而我所看到的各种教程,讲开发板的少,初识STM32的同学不知道怎么找资料,不知道怎么用,而单片机,大家都知道上网去查手册,所以先讲讲开发板的界面;
二是开发板其中很多界面和单片机界面类似,一通百通

  • 如果购买了或者运气好获得了官方的开发板,那可以选择中间按钮 “ACCESS TO BOARD SELECTOR” ,进入后的界面如下
    在这里插入图片描述

    • 在首次或者每隔一段时间启动STM32CubeMX时,软件都会从服务器更新数据,等待即可自动完成
      在这里插入图片描述

    • 如果软件运行过,且不需要更新的话,直接Cancel也是没问题的,可后面手动点击首页的Update更新,不再赘述

  • 右侧列表是选型列表

    • 由于我们大多数开发,都是基于某型的MCU或者MPU(截至当前ST的产品线)进行自定义开发,除非基于官方开发板的项目,否则均不选择上述第二个按钮,我们直接选择第一个按钮创建基于芯片的新项目即可
      在这里插入图片描述

    • 当然我还要在此提一句,如果有需要参考官方开发板设计的需求,那么查询你所要的单片机型号是否有开发板,如果存在,右侧列出并选择:

  • 具体的ST开发板产品线如下:
    在这里插入图片描述

  • 一般我们可以选择根据单片机查找开发板
    在这里插入图片描述

  • 勾选需要的型号,例如我选择了F4系列后,右边列表选择F411开发板,则上方会出现详细资料,这和官网的资料一致,免去了官网查找的麻烦
    在这里插入图片描述

  • 此处提及几个要点

    1. 点击列表左侧的⭐,可以进行收藏,收藏在左上角的Board Filters下方的星星处,一旦有了收藏后,星星即变为蓝色,可在里面收藏常用型号的芯片和开发板

    2. Docs选项卡中有资料:BOM、原理图、手册等等,右侧是Datasheet,按需下载
      在这里插入图片描述

    3. 下载后的文件都在用户目录下,直接复制到资源管理器(此电脑)地址栏即可

%userprofile%/STM32Cube/Repository

在这里插入图片描述


那么经过这一番操作,我们基本熟悉了软件的大致布局,我们接下来切换到单片机选择部分,有两种方式:

  • 当前页面左上角直接切换
    在这里插入图片描述

我想,经过对比,你一定看出了这三个按钮的关系其实是一致的,在当前页面直接选择
在这里插入图片描述

此按钮也可

  • 我们也可以关闭当前页面,恢复到初始页面重新选择
    在这里插入图片描述

单片机工程

单片机工程创建
  1. 那么经过一堆废话,到了最常用的部分,点击进入后,填入单片机型号
    在这里插入图片描述

  2. 直接双击列表中型号或选中后右上角启动均可
    在这里插入图片描述

  3. 创建工程后,我们开始配置工作

单片机工程配置界面
  1. 上面一行是几大核心配置,左侧一列是具体外设及GPIO等配置
    在这里插入图片描述

  2. 时钟配置
    在这里插入图片描述

  3. 工程配置
    在这里插入图片描述

单片机工程具体配置

此处我们还是以最简单的点灯为例子,进行从系统时钟、调试口、GPIO等的配置

引脚功能配置
  1. RCC,按需开启外部或内部时钟,开启后,右侧引脚会有变化,请自行探索,而配置下方是详细配置
    在这里插入图片描述

  2. 我们可以选择最常见的SWD调试接口
    在这里插入图片描述

  3. 例如我们选择PA1作为从电源 -> 电阻 -> LED -> IO灌入的接法,那么点击PA1引脚,选择GPIO_Output
    在这里插入图片描述

  4. GPIO默认输出低电平,驱动LED一般配置为推挽输出,所以无上拉也无下拉,最后的亮灭由程序决定
    在这里插入图片描述

    • 最下面还有个自定义标签功能User Label,可以给IO自定义名称,也就相当于写在头文件中的 “#define”
      在这里插入图片描述
系统时钟配置

我们已经在RCC页面配置了内部或者外部时钟,那么我们就要在时钟配置界面进行各部分的详细配置
在这里插入图片描述

在选择为HSE后,则外部时钟源高亮,内部未选择,则没有连接
在这里插入图片描述

将这里的8改成电路上的实际外部晶振数值,一般系统的总线频率我们都配置为最大,这样获得更好的效果
在这里插入图片描述
- 这里我们先不要管其他外设的时钟频率,先输入想要的总线时钟,回车后软件会自动配置,最后只需要检查即可
在这里插入图片描述
- 如果时钟配置有问题,会提示,我们点击OK尝试
在这里插入图片描述
接着,后面的外设就都被自动配置完成
在这里插入图片描述
如果对个别外设有特殊需求,再手动修改,否则即完成
在这里插入图片描述
到此,MCU配置相关的部分已经基本完成,下面进行的是工程配置

工程配置
Project

在这里插入图片描述

  • 工程名称:
    • 规范地按照你的习惯起名字,注意不要有中文符号和空格等问题
  • 工程位置:
    • 位置自行选择,还是中文路径的问题,为避免编译器问题,请养成良好习惯
  • 编译工具的配置:
    • 大多数初学者入门包括很多工程师必不可少都在用Keil
      • 现在STM32推出了他们的CLT包支持VSCode官方插件直接编译调试,还有STM32CubeIDE等
    • 这里我们还是选大多数人用的Keil,版本按照安装的版本,我的是V5最新版,选择大版本V5即可

其他部分保持默认

Code Generator

在这里插入图片描述
这里修改两处:

  1. 我们只需要复制工程所需要的库即可
    怎么理解这句话,比如我们没有用到USB、IIC、串口等等的功能,但在配置页面勾选了一些功能,那么在这里勾选了All used libraries… 的话,就会使得工程目录内存较大,可以选 仅使用必要的库
  2. 勾选生成官方的.c和.h库
Advanced Settings

里面有些高级配置,比如使用LL库在这里配置,还有
一些寄存器调用等高级配置,若你需要配置它的时候,说明你已经不再适合读这篇文章了

生成

最后,点击右上角大大的按钮,创建工程
在这里插入图片描述

  • 若首次配置这个型号MCU的工程,因为没有HAL库的Firmware,故提示需要下载。
    Yes即可

在这里插入图片描述

  • 登录ST账号
    在这里插入图片描述
  • 登录后在Help最后一项中可以看到
    在这里插入图片描述

在这里插入图片描述

  • 等待下载、安装完成
    在这里插入图片描述
    在这里插入图片描述
  • 最后弹出此对话框表示成功
    在这里插入图片描述
    Open Folder 表示打开工程文件夹
    里面是STM32CubeMX的工程文件: xxx.ioc和Keil工程文件等,可以在此添加其他文件和版本管理
    在这里插入图片描述

Open Project 表示选择直接用Keil打开工程,接下来直接写代码更方便


下篇博客将会分享使用官方CLT配合VSCode的生成和代码编辑方法

相关文章:

  • 【智体OS】AI社交产品头榜赋能电商新零售:某品牌吹风机的智能营销实战案例
  • uni-app,小程序自定义导航栏实现与最佳实践
  • Nacos源码—7.Nacos升级gRPC分析三
  • Python程序打包为EXE文件的全面指南
  • 从AI到新能源:猎板PCB的HDI技术如何定义高端制造新标准?
  • RGB矩阵照明系统详解及WS2812配置指南
  • Vue Router 3 使用详解:从零构建嵌套路由页面
  • 多账号管理与自动化中的浏览器指纹对抗方案
  • LSTM的简单模型
  • 22、城堡防御工事——React 19 错误边界与监控
  • Docker Compose 部署 MeiliSearch 指南
  • 【C】初阶数据结构14 -- 归并排序
  • 基于设备指纹识别的反爬虫技术:给设备办 “身份证”
  • vue3 全局注册自定义指令,input聚焦失焦展示对应值
  • NXP iMX8MP ARM 平台多屏幕克隆显示测试
  • kuka, fanuc, abb机器人和移动相机的标定
  • 对golang中CSP的理解
  • 学习记录:DAY28
  • 7.3.隐私合规
  • [春秋云镜] Brute4Road 仿真场景
  • 新村回响:一周城市生活
  • 中国象棋协会坚决支持司法机关依法打击涉象棋行业的违法行为
  • “仓促、有限”,美英公布贸易协议框架,两国分别获得了什么?
  • 读图|展现城市品格,上海城市影像走进南美
  • 暴利之下:宠物殡葬行业的冰与火之歌
  • 经彩申城!上海网络大V沙龙活动走进闵行