第一篇 STM32CubeMX创建STM32工程之工程创建、编译、下载

本文详细介绍了如何使用STM32CubeMX创建STM32工程,包括设置芯片、配置时钟、工程创建选项、编译和下载过程,以及为何创建user相关的文件以保持代码独立性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、STM32工程创建

使用stm32Cubemx创建stm32工程能更快、更准确的配置好stm32所需要的资源,提高单片机编程的效率。下面跟着小编一起来看一下如何快速创建stm32工程

1.打开stm32Cubemx

双击打开stm32CubeMX软件,小编使用的是6.10.0。stm32CubexMX版本号
选择

2.选择stm32芯片

1.选择Access To MCU Selector进行芯片选择
在这里插入图片描述

2.在Commercial Part Number位置输入使用的单片机型号。
型号选择
3.右下角会筛选出对应的芯片,选择对应的封装双击即可
芯片选择

注:其他选项小编在这里就不在介绍了,请各位自行摸索。

3.设置时钟

1.芯片选择后如下图所示
在这里插入图片描述

2.第一步选择System Core→RCC选择对应的输入时钟,小编使用的是高速的有源晶振,未使用低速晶振,因此只选择了高速时钟。
在这里插入图片描述

3.晶振配置完成后选择Clock Configuration,配置时钟分频,具体步骤如图所示。
在这里插入图片描述

注:图上第四步可以根据需求进行设定,小编一般默认到最大时钟频率

4.配置工程创建选项

1.选择Project Manager,按住图示设置工程名称、存放路径、编译环境、编译器版本。
在这里插入图片描述

2.选择Code Generator,按图进行设置,第一个选项是只导入所需的hal库,第二个选项是为每个资源生成独立的.c和.h文件
在这里插入图片描述

5.下载配置

回到引脚配置页面,选择sys配置debug选项,小编选择的是SW下载和调试
在这里插入图片描述

6.导出工程

完成上述配置后,选择Generator Code导出工程
在这里插入图片描述

二、打开并编译STM32工程

1.编译前工作

到此一个基础工程就创建完毕了,下面的一些操作完全是小编的个人习惯,仅供参考。
在生成的工程文件夹内创建User和Hardware两个文件夹。在User文件夹内创建user.h和user.c两个文件,文件内随后附上。此操作主要是为了后期代码方便移植和更改。
在这里插入图片描述
在这里插入图片描述

2.打开工程

工程文件在MDK-ARM文件夹下,双击打开

3.添加目录

1.打开后选择如图所示三色方块
在这里插入图片描述
2.在对应的位置创建两个文件目录,并在User中导入创建的.c文件
在这里插入图片描述
3.在user.c总添加如下代码

#include "user.h"

void user_main(void)
{
	while(1)
	{
		
	}
}

4.在user.h文件中添加如下代码

#ifndef USER_H
#define USER_H  
#include "stm32f1xx_hal.h"
void user_main(void);
#endif

5.选择魔法棒,添加用户创建的文件所在路径
在这里插入图片描述
在这里插入图片描述

6.打开main.c文件,在24-26行之间添加#include “user.h”,在95-97之间添加user_main();
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

4.编译工程

完成后选择全编译选项进行工程编译,不出意外应该是0错误0警告
在这里插入图片描述
到此工程的创建就完成,这里解释一下为什么要创建user相关的文件,由于在编程工程中可能随时会修改端口配置,重新导出工程代码,此时部分代码会被还原,只有在
/* USER CODE BEGIN 2 */

/* USER CODE END 2 */
之间的代码不会被还原,为了方面移植,方面用户观看,因此创建了user.c作为编程的程序入口,所有的程序都将在user.c中完成,无论如何修改工程都不会影响用户的代码。

三、程序下载

1.选择下载方式

1.编译完成后,依旧选择魔法棒,选择debug,选择使用的下载,这里小编习惯使用ST-link
在这里插入图片描述

2.下载

配置完成后,按下load进行下载
在这里插入图片描述
到此,使用STM32CubeMX创建工程及编译下载就结束了,感谢读者阅读,谢谢!!!,下一遍,我们将讲解如何配置GPIO的输入,来控制LED的亮灭。

### 导出STM32CubeMX配置参数或项目信息至表格 为了便于管理和记录,有时需要将STM32CubeMX中的配置参数或整个项目的设置导出成易于查看的形式。虽然STM32CubeMX本身并不直接支持导出为常见的电子表格格式(如Excel),但是可以通过几种间接的方法来实现这一目标。 #### 方法一:利用生成的中间文件 当通过STM32CubeMX完成硬件抽象层(HAL)库初始化代码生成功能之后,会自动生成一系列用于描述外设配置和其他重要设定的信息文件。这些文件通常位于工程目录下的`Core/Inc`以及`Drivers/CMSIS/Device/ST/.../Include`路径中。特别是`.ioc`文件包含了所有关于MCU的选择及其外围设备的具体配置详情[^1]。 可以编写简单的脚本解析上述提到的各种头文件(.h),从中提取必要的定义宏和结构体成员变量作为数据源,并将其转换为目标格式的数据表单。对于更复杂的分析需求,则可能需要用到正则表达式匹配特定模式的内容或者借助第三方库处理XML形式存储的部分配置项。 #### 方法二:手动整理并记录关键配置点 另一种更为直观的方式就是依据个人关注的重点,在每次调整完相应选项后立即复制粘贴相关联的关键字句到文档编辑器内保存起来;亦或是截图留档以便日后查阅对比不同版本间的差异之处。这种方式虽不够自动化但也足够灵活应对临时性的查询请求[^2]。 #### 方法三:使用第三方工具辅助 网络上存在不少由社区贡献者开发的小型应用程序专门用来读取并展示来自STM32CubeMX工程项目内部结构化资料——比如JSON对象表示法所承载的消息队列、中断优先级分配情况等细节内容。这类软件往往具备图形界面友好易用的特点,能够快速定位感兴趣字段进而一键导出CSV/XLSX类型的报表供进一步加工处理之需[^3]。 ```python import json from openpyxl import Workbook def export_to_excel(json_file, excel_file): with open(json_file, 'r') as f: data = json.load(f) wb = Workbook() ws = wb.active for row_index, (key, value) in enumerate(data.items(), start=1): ws.cell(row=row_index, column=1).value = key ws.cell(row=row_index, column=2).value = str(value) wb.save(excel_file) export_to_excel('project_config.json', 'output.xlsx') ``` 此Python脚本展示了如何简单地将JSON格式的配置文件转化为Excel工作簿的一部分实例。当然实际应用时还需具体场景定制逻辑流程以满足多样化的业务诉求[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值