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

单片机开发工具篇:(六)STM32CubeMX 的使用,包括软件和固件包的下载、以及基础使用

上一篇下一篇
keil 中常用的 C 语言(简述)

目 录

  • STM32CubeMX 的使用
    • 1)相关链接:
    • 2)简介:
    • 3)使用:
      • ①固件包的存放位置设置:
      • ②关联固件包:
      • ③新建工程步骤:
        • 1. 为什么要在预留的地方写对应的代码?
        • 2. 相关标识符含义:
    • 4)补充:


STM32CubeMX 的使用

直接从官网下载(注册个账号,支持中国大陆),速度较慢,但还好。

注意:这个软件只支持 STM32 系列的单片机。并且初学者不建议使用,初学建议从基础开始学,这个是偷懒的一个工具。

使用目的:对于某个外设,可以用软件生成初始化代码,然后 参考理解

STM32CubeMX 是专门为 HAL 库 编程用的。

1)相关链接:

官方下载链接:STM32CubeMX | Software - 意法半导体STMicroelectronics

软件下载教学视频:STM32CubeMX快速安装指南:一步一步教你下载和安装 保姆级教程ST官方下载 安全可靠_哔哩哔哩_bilibili

固件包下载教学视频(可以直接在 ST 官网搜 STM32cube,然后选对应的型号和版本):

同时包括下载和使用的教学视频:全是干货 | STM32CubeMX工具入门【初学必备】_哔哩哔哩_bilibili

【注意】从 6.0 版本之后,就不需要再手动搭建 java 环境了(内置了)。

2)简介:

STM32CubeMX 是 ST 开发的一款图形配置工具,可通过配置自动生成初始化代码(并不是逻辑代码)。

搭配不同系列的 STM32Cube 固件包,即可支持不同系列的 STM32 芯片。

在这里插入图片描述

3)使用:

①固件包的存放位置设置:

在这里插入图片描述

②关联固件包:

在这里插入图片描述

三种方式:

  1. 联网下载并自动解压固件包:

    先勾选所需下载的固件包,然后点击 Install 按钮,即可自动下载并解压
    (压缩包和解压缩后的文件夹都会存放在设置的固件包存放地)。

  2. 本地关联解压固件包:

    将已有的固件压缩包,放进设置好的固件包存放地,然后点击 From Local … 按钮,即可自动解压。

  3. 直接将解压缩后的固件包文件夹放进设置好的固件包存放地。

【注意】上述三种方式进行后,相关的固件包前方框就会显示绿色。

③新建工程步骤:

这里可以参考一些网上的教学视频。

  1. 工程初步建立: 新建工程,选择芯片型号
  2. 时钟模块配置: 设置 HSE、LSE、MCO
  3. 时钟系统配置: PLL、SYSCLK、AHB、APB1、APB2 等等
  4. GPIO引脚配置: 配置所需的引脚
  5. Cortex内核配置: SYS(DEBUG)配置、NVIC(优先级分组)
  6. 生成工程源码: 设置工程,MDK 等,最后生成代码工程
  7. 编写用户程序: 在 main.c 文件预留的位置编写代码

配置的时候,基本上从第三步开始,就要对照开发板的手册和原理图来设置了。

SYS(DEBUG)配置的时候,如果没有配置,那么就默认使用 JTAG 。选项中的 Serial Wire 就是 SWD。

NVIC 默认配置是 “4 位抢占优先级,0 位响应优先级” 。

1. 为什么要在预留的地方写对应的代码?

是因为如果有要修改的地方,可以再用 CubeMX 生成初始化代码,而 STM32CubeMX 有一个 “用户代码保留机制” ,它会先重新生成所有初始化代码,然后扫描本地文件中的 USER CODE BEGIN/END 区域,将我们自己写的代码“提取”出来,重新插入到新生成的文件中,而其他不在 USER CODE 区域的代码可能会被覆盖。

2. 相关标识符含义:

GPIO:

  • GPIO optput level:GPIO输出电平

    • Low:低电平
    • High:高电平
  • GPIO mode:GPIO 模式

    • Output Push Pull:推挽输出
    • Output Open Drain:开漏输出
  • GPIO Pull-up/Pull-down:GPIO 上下拉

    • No pull-up and no pull-down:不上拉也不下拉
    • Pull up:上拉
    • Pull down:下拉
  • Maximum output speed:最大输出速度

    • Low:低速
    • Medium:中速
    • High:高速

4)补充:

初始化代码和逻辑代码的区别:

名称中文含义简要定义
初始化代码Initialization Code程序启动时一次性执行的代码,用于配置硬件、外设、时钟、引脚等,为后续运行做准备
逻辑代码Logic Code程序运行过程中持续执行的代码,实现具体功能(如控制、计算、通信等)

一句话总结:初始化代码是 “准备阶段” ——让硬件 ready;逻辑代码是 “执行阶段” ——让系统 work。


http://www.dtcms.com/a/503605.html

相关文章:

  • 网站建设费是多少常州高端网站建设
  • 20.UE-游戏逆向-绘制所有对象坐标
  • jsp网站建设作业泗阳县建设局网站
  • Springboot整合IoTB
  • 个人做网站哪种类型的网站好男生做男生网站在那看
  • 从 0 到 1 学 C 语言队列:链表底层实现(初始化 / 入队 / 出队 / 销毁),代码可直接复用!
  • 书店网站建设网站栏目结构软文营销的特点有哪些
  • 做个网站要多久做网站app要多少钱
  • 1. Linux 驱动开发前景
  • 深入理解进程生命周期:从 fork 到 exit 的完整旅程
  • 英维克(002837)-2025-10-19
  • 自助手机网站建站软件wordpress metaslider
  • PCIe协议之 Equalization篇 之 FIR 三抽头的三因子的理解
  • FFmpeg 基本API av_seek_frame函数内部调用流程分析
  • FFmpeg 基本API avcodec_send_packet函数内部调用流程分析
  • 手机建站网站常德营销型网站建设
  • Flutter 与原生混合编程
  • DevOps 与 部署入门:加速软件交付与运维的实践指南
  • 优化网站seo中山做百度网站的公司名称
  • 上海袜网站建设电商营业执照
  • 找到K个最接近的元素
  • Java中JDK、JRE、JVM概念
  • MySQL 表操作核心指南:CRUD 与进阶技巧
  • 网站开发个人总结网页设计与网站建设在线考试1
  • 算法笔记 05
  • 游戏科技网站杭州建设工程交易中心网站
  • 网站做推广要备案吗四川seo快速排名
  • 有关房地产开发建设的网站哪些网站可以接点私活做的
  • 有关应广单片机数据类型与ROM空间优化的一点看法
  • 【2026计算机毕业设计】基于Jsp的医疗设备及业务综合巡检系统