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

STM32CubeMX的使用方法:使用STM32CubeMX生成基于STM32F103+HLA库的初始化代码,并在此基础上写出LED点灯程序

收尾

看下标题要不要纠正

STM32CubeMX的介绍

当然可以!STM32CubeMXSTMicroelectronics(意法半导体) 提供的一款 图形化配置工具,专门用于 STM32 微控制器 的初始化代码生成。它可以帮助开发者快速配置 STM32 的外设、时钟、引脚映射,并自动生成相应的 C 代码,以便导入到 Keil、IAR、STM32CubeIDE 等开发环境中进行进一步开发。


主要功能

1. 图形化外设配置

  • 直观的 GPIO 配置(输入/输出/复用功能等)
  • 外设初始化(如 UART、I2C、SPI、ADC、TIM 等)
  • 低功耗模式设置

2. 时钟树配置

  • 提供 时钟树视图,可以直观地调整主时钟(HSE、HSI)、PLL 以及外设时钟,自动计算频率并检测是否超限。

3. 中间件支持

  • USB、FreeRTOS、LWIP(以太网协议栈)、FatFS(文件系统)等
  • 直接配置和启用 ST 官方提供的 HAL(硬件抽象层)库

4. 代码生成

  • 自动生成 STM32 HAL 库LL(低层)库 初始化代码
  • 代码可以直接导入到 Keil、IAR、STM32CubeIDE 等环境进行编译和调试

5. MCU 选择和引脚映射

  • 提供芯片型号选择界面,支持 STM32 全系列
  • 支持 引脚重映射(Remap),避免冲突

6. 板级支持包(BSP)

  • 可选 官方开发板(如 NUCLEODiscovery 板)
  • 自定义用户自己的 PCB 设计

使用流程

  1. 选择 MCU/开发板(如 STM32F103C8T6)
  2. 配置引脚和外设(如 USART2、I2C1、GPIO)
  3. 配置时钟树(如 HSE 8MHz,PLL 72MHz)
  4. 启用中间件(如 USB CDC、FreeRTOS)
  5. 生成代码(选择 Keil/STM32CubeIDE 工程)
  6. 导入 IDE 并编译/烧录

适合哪些开发者?

  • 初学者:不熟悉寄存器配置,想快速上手 STM32
  • 嵌入式开发者:希望提高开发效率,减少重复的初始化代码
  • 有经验的工程师:用于快速原型开发和测试

STM32CubeMX vs 传统寄存器编程

对比项STM32CubeMX (HAL/LL)传统寄存器编程
开发效率高,自动生成代码低,需要手写寄存器配置
代码可读性清晰,基于 HAL API复杂,涉及大量寄存器
灵活性适中,HAL 封装了一些细节高,可完全控制底层
适合场景快速开发,通用项目性能优化、底层驱动开发

小结结

STM32CubeMX 是 STM32 开发中 非常实用的工具,可以大大降低外设配置的难度,提高开发效率。如果你想快速完成 STM32 工程初始化,强烈建议使用它!🎯

确定是对哪个GPIO口进行操作

点此查看视频 的03分50秒开始看。

结论是我们需要对PC组的第13个引脚进行操作。

利用STM32CubeMX生成基于STM32F103+HLA库的初始化代码

打开STM32CubeMX

首先打开STM32CubeMX:
在这里插入图片描述

选择芯片(STM32F103C8T6)

然后点击中间的“ACCESS TO MCU SELECTOR”:
在这里插入图片描述
由于我们的主控芯片的型号是:STM32F103C8T6,所以我们在下面的位置搜索“STM32F103C8T6”:
在这里插入图片描述
然后在搜索结果中选择它(双击):
在这里插入图片描述
在这里插入图片描述

Project项配置

点击上图中的“Project Manger”切换到工程生成配置下的“Project”项:
在这里插入图片描述
然后再点击“Project Manger”下的“Code Gnerator”项:
在这里插入图片描述
我们需要把c文件和h头文件分开,所以勾选下面这个选项:
在这里插入图片描述

Pinout&Configuration项配置

接下来对GPIO的PC组的第13个引脚进行选择配置。
首先切换到“Pinout&Configuration项”:
在这里插入图片描述
然后按下面的操作找到引脚:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置成输出引脚:
在这里插入图片描述
在这里插入图片描述
这样引脚的配置就完了。

生成代码

点击右上角的GENERATE CODE
在这里插入图片描述
同意下载它的资料包:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成完毕,点击上图中的Close关闭,然后我们去工程目录中去看有没有相关生成。
在这里插入图片描述
可见有了。

生成的代码分析

点此查看视频 的06分23秒开始看。

STM32CubeMX生成的工程可以修改更新

在 STM32CubeMX修改相关配置后,再点击GENERATE CODE就更新了。在写main函数代码的时候把代码写到下面这些位置,那么自己写的代码不会丢失:
在这里插入图片描述
但得在配置的时候勾选下面这个选项:
在这里插入图片描述

打开STM32CubeMX生成的工程,添加自己的代码

添加代码

在这里插入图片描述
在main函数里添加下面这两句代码:

volatile int val = 1;

  while (1)
  {
		HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, (GPIO_PinState)val);
		HAL_Delay(500);		
		val = !val;
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

在这里插入图片描述
在这里插入图片描述

注意:HAL_GPIO_WritePin() 的第三个参数应该是 枚举类型 GPIO_PinState,而 valint 类型,所以要显示转换一下,否则会报警告。

设置好ST-Link Debugger(烧写器)

然后按照博文 https://blog.csdn.net/wenhao_ir/article/details/146691445 设置好ST-Link Debugger(烧写器)
在这里插入图片描述
在这里插入图片描述

编译,烧写,运行

然后编译:
在这里插入图片描述
烧写并运行:
在这里插入图片描述
烧写完成后,点击复位按键,即发现绿灯在闪烁了。
在这里插入图片描述

如何在STM32CubeMX中打开之前由STM32CubeMX生成的项目?

在STM32CubeMX中打开下图中这个文件即可:
在这里插入图片描述

相关文章:

  • Redis相关知识
  • photoshop安装教程(附安装包)photoshop详细图文安装教程包含下载、安装、使用
  • 2025年辽宁食品安全管理员考试练习题库
  • hackmyvn-casino
  • .NET 通过Junction Folder实现权限维持
  • 进程间信号
  • 项目6——前后端互通的点餐项目
  • 详解Maven的主要生命周期
  • 安装windows server 2016没有可选硬盘,设备安装过ubuntu系统
  • vue3使用v-md-editor完成Markdown内容展示
  • 正则表达式核心语法 + Python的 re 库中常用方法
  • 二分答案-P8647 [蓝桥杯 2017 省 AB] 分巧克力
  • iCare Format Recovery:轻量级数据恢复工具
  • 某地老旧房屋自动化监测项目
  • JVM 每个区域分别存储什么数据?
  • Apache SeaTunnel 2.3.10 正式发布 —— 全新功能与多项改进,助力数据集成再升级!
  • 量子计算与AI音乐——解锁无限可能的音色宇宙
  • 【C++ SIMD】第1篇:SIMD基础概念与开发环境配置
  • 离散数学问题集--问题4.40
  • Burp Suite如何配置证书
  • 承德市宽城县建设局网站/广告推广网站
  • 京东云擎 wordpress/宁波seo在线优化方案
  • 数据型网站建设/深圳最新新闻事件今天
  • 亚马逊图书网上商城/seo技术中心
  • 专业的网站建设公司排名/买卖网站
  • 网络营销师资格证有什么用/sem和seo