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

实用指南:【STM32实践篇】:STM32CubeMX 的使用

文章目录

  • 1. 安装 STM32CubeMX
  • 2. 安装 MCU 固件包
    • 2.1 设置软件库文件路径
    • 2.2 管理嵌入式软件包
  • 3. 使用 CubeMX 新建项目
    • 3.1 选择 MCU 创建工程
    • 3.2 MCU 图形化部署界面
      • 3.2.1 引脚与配置
      • 3.2.2 时钟配置
      • 3.2.3 项目管理
  • 4. 点亮 LED 灯
    • 4.1 硬件电路
    • 4.2 CubeMX 设置


1. 安装 STM32CubeMX

注意事项:

  1. 安装目录不能带有汉字、空格和非下划线的符号,由于 CubeMX 对中文的支持不太好。
  2. CubeMX 需要用到 Java 运行环境 JRE,建议开发人员直接下载安装 JDK。

我设置的安装目录:D:\IDE\ST\STM32CubeMX

2. 安装 MCU 固件包

2.1 设置软件库文件路径

在这里插入图片描述

在这里插入图片描述

  1. MCU 固件包和扩展包安装路径,建议设置后就不再更改,我设置的路径:D:\IDE\ST\STM32Cube\Repository
  2. 设置 CubeMX 的更新方式为:手动检查更新
  3. 设置 CubeMX 启动时是否自动刷新已安装软件库的数据和文档为:不在 CubeMX 启动时自动刷新

2.2 管理嵌入式软件包

  • 菜单项:Help --> Manage embedded software packages

在这里插入图片描述
找到所需系列芯片,例如:STM32F4,选择最新版本,点击 Install 安装。

在路径 D:\IDE\ST\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.3 下面可以看到安装好的固件库。

3. 使用 CubeMX 新建任务

3.1 选择 MCU 创建项目

  • 菜单项:File --> New Project

在这里插入图片描述

  1. 按照筛选条件选择 MCU,如果已知具体型号,可以在搜索框直接输入。
  2. 通过筛选或搜索的 MCU 列表,会显现出具体型号,封装,Flash,RAM 等参数,单击星号收藏,双击MCU型号进入项目管理视图。
  3. MCU 资料显示区域。

3.2 MCU 图形化配备界面

在这里插入图片描述

  1. 引脚与配置:对 MCU 的平台内核,外设,中间件和引脚进行配置。
  2. 时钟配置:通过时钟树对 MCU 的各个时钟信号频率调整。
  3. 项目管理:项目的一些设置。
  4. 工具:进行功耗计算等。

3.2.1 引脚与配置

  1. 组件列表:MCU 可以配置的系统内核,外设和中间件列表,可分组显示或者按照字母顺序显示。
    在这里插入图片描述
  2. 组件的模式和配置:例如组件选中 RCC,可能在上方设置模式,下方设置参数。
    在这里插入图片描述
  3. 引脚视图:显示各引脚设置情况。
    在这里插入图片描述
  • 亮黄色引脚:电源或接地引脚,例如:VDD。
  • 黄绿色引脚:一种功能的系统引脚,例如:NRST,这些引脚不能进行配置。
  • 未调整功能的引脚为灰色。
  • 已经配置特性的引脚为绿色。

在引脚上单击鼠标左键,弹出引脚功能选择菜单,例如引脚在 PF9 上单击时,允许看到 PF9 可能作为 GPIO,ADC,定时器等使用:
在这里插入图片描述
将 PF9 引脚设置好机制后,在引脚上单击鼠标右键,会调出一个快捷菜单。
在这里插入图片描述

  • Enter User Label:输入用户标签,标签将取代原来的引脚信号名称。
  • Signal Pinning/Unpinning:信号绑定/解绑,将引脚与功能绑定/解绑。
  1. 框架视图:呈现 MCU 已经设置的各种组件。
    在这里插入图片描述

3.2.2 时钟安装

先设置 RCC 的模式,将 HSE 和 LSE 都设置为启用外部晶振,并且启用 MCO1 和 MCO2,MCO2 与音频时钟输入不能同时使用。
在这里插入图片描述
启用 RTC。
在这里插入图片描述
时钟源,时钟信号或选择器的作用如下:
在这里插入图片描述

  1. HSE 时钟源:设置为使用外部晶振,开发板的是 8MHz 晶振,填入8。
  2. HSI RC 振荡器:频率为 16MHz 的时钟信号。
  3. PLL 时钟源选择器:输入时钟选择 HSE 或 HSI,通过分频和倍频产生时钟信号,输出时钟信号有 PLLCLK,48MHz 时钟信号,PLLI2S。
  4. 系统时钟选择器:系统时钟 SYSCLK 是为 MCU 大部分组件提供时钟信号的时钟源,输入时钟有 HSE,HSI,PLLCLK。Enable CSS 按钮可以启用时钟安全系统,使用 HSE 时该按钮才有效,当 HSE 发生故障,会发出一个 CSSI 的中断信号,自动切换到 HSI 作为时钟源。
  5. 平台时钟 SYSCLK:文本框不能修改它的值,该时钟经过 AHB 预分频器后生成 HCLK 时钟信号。
  6. HCLK 时钟:CPU 的时钟信号,为 AHB 总线,内核,APB1 总线和 APB2 总线提供时钟,HCLK 最高频率 168MHz,可以在文本框修改,例如输入 72 后,软件会自动进行修改。在这里插入图片描述
  7. 音频时钟输入:在 RCC 中去掉 MCO2,选择 Audio Clock Input(I2S_CKIN),就可以在此输入一个外部的时钟源作为 I2S 接口的时钟信号。在这里插入图片描述在这里插入图片描述
  8. I2S 接口时钟源选择器:从两个输入时钟 PLLI2SCLK,I2S_CKIN 里面选择一个作为 I2S 接口的时钟信号。
  9. MCO 时钟输出和选择器:MCO 时 MCU 为外部设备给出的时钟源。在这里插入图片描述
  10. LSE 时钟源:固定为 32.768MHz,作为 RTC 的时钟源,经过多次分频后,可以得到精确的 1Hz 信号。
  11. LSI RC 振荡器:MCU 内部产生的 32KHz 的时钟信号,可以为 RTC 和 IWDG 提供时钟信号。
  12. RTC 时钟选择器:可选时钟源 LSI,LSE 和 HSE,要使 RTC 精度高,应该选择 32.768MHz 的 LSE 作为时钟源。

3.2.3 项目管理

  1. Project 页面:项目名称,保存路径,导出代码的 IDE 软件等。
    在这里插入图片描述
  • C 语言程序得一个 main() 函数,不勾选。
  • 选择导出的 C 语言程序的工具链或 IDE 软件。
  • 其余选项暂时保持默认。
  1. Code Generator 页面:设置生成 C 语言代码的一些选项。
    在这里插入图片描述
  • 勾选,为每一种外设生成的初始化代码将会有 .c和.h 两个记录。
  • 通过设置所有自由引脚类型为 Analog,这样能够优化功耗。
  • 启用 Full Assert ,HAL 库中每个函数都会对函数的输入参数进行检查,如果检查出错,会返回出错代码的文件名和所在行。
  1. Advanced Settings 页面,生成 C 语言代码的一些高级设置,例如:外设初始化代码是使用 HAL 库还是 LL 库。
    在这里插入图片描述
  • 给组件选择使用HAL库还是LL库。
  • 勾选此项,在main()函数的外设初始化部分不会调用这个函数,然而函数的完整代码还是会生成的,如何调用由编程者自己决定。
  • 是否在函数原型前面加上关键字 static,使文件变为文件内的私有函数。如果在 Code Generator 页面勾选了 Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral,则无论是否勾选 Visibility(Static) ,外设的初始化原型函数前面都不会加 static 关键字,因为在 .h记录里声明的函数原型对外界就是可见的。

4. 点亮 LED 灯

4.1 硬件电路

在这里插入图片描述在这里插入图片描述
从原理图中允许看出,控制引脚 PF9,PF10为GPIO输出引脚,且输出低电平可以点亮 LED 灯。

4.2 CubeMX 设置

  1. PF9 和 PF10 设置为推挽输出低电平,写上标签 LED0 和 LED1。
    在这里插入图片描述在这里插入图片描述

  2. 时钟设置:HSE 选择晶振 8MHz,HCLK 设置为168MHz。
    在这里插入图片描述

  3. 组件 SYS 设置为串行调试接口
    在这里插入图片描述

  4. 设置项目名称和生成 .c和.h对。
    在这里插入图片描述在这里插入图片描述

  5. 点击生成代码。
    在这里插入图片描述在这里插入图片描述


http://www.jsqmd.com/news/321474/

相关文章:

  • 2026功能饮料的横测与推荐,东鹏补水啦兼具日常运动到专业运动场景!
  • ‌AI驱动的防复发测试用例生成:从历史Bug中构建智能回归防线
  • 金融租赁购车热,民生金租热线电话助你挑可靠公司!
  • 口碑好的综合颗粒物采样器供应商推荐,费用高吗?
  • 2026年建筑行业专用聚氨酯厂家排名,上海鹤城高分子科技实力强
  • 【WTCSV故障诊断】基于小波多尺度同步压缩变换WMSST结合CNN-SVM的故障诊断研究附matlab代码
  • 郑州留学中介哪家稳定可靠?口碑排名为您推荐
  • 《认知生态政治经济学:AI元时代的政治经济学批判新框架》研究报告
  • 使用 MWGA 帮助 7 万行 Winforms 程序快速迁移到 WEB 前端
  • keycloak~分布式部署中会话过期清理机制
  • 汽车制造领域,asp.net如何实现文件夹上传的自动化流程?
  • 2026 年 GEO 优化服务商深度选型:从技术到效果的长期价值挖掘指南
  • 2026主动健康监测养老机器人技术解析与主流产品评测
  • 2026年8款降AI率工具亲测推荐:知网维普双平台实测通过
  • 周六福项链质量如何?推荐6款性价比高,口碑公认!
  • 基于SSM架构的农产品溯源管理系统
  • 贯流风扇靠谱供应商价格如何,选购要点分享
  • Google 打击恶意住宅代理网络:什么才是合规可用的代理服务设施?
  • 2026 年腾讯元宝 GEO 优化深度解析:从技术到效果的聚焦效果服务商甄选指南
  • 2026年代理IP公司
  • 深聊质量好的离心风扇品牌,上海神逵智能上榜
  • 【免费下载】中国农村统计年鉴2000-2024
  • 基于elsa工作流封装一套变量、组件的体系
  • 2026年指纹浏览器品牌
  • 讲讲江西中医药大学中医师承班需要面试吗及性价比情况
  • 知网vs维普AIGC检测有什么区别?选对平台少走弯路
  • netty收发
  • 2026年海外代理IP厂家
  • 知网AIGC检测不通过?3招搞定,附避坑清单
  • 中科全程港澳台联考基础班怎么样,靠谱的港澳台联考培训推荐