STM32CubeMX初始生成工程

STM32CubeMX初始生成工程

STM32CubeMX软件可以很容易的配置STM32 MCU,例如引脚配置(Pins)、时钟树(Clock Tree)、外设(Peripherals)、中间件(Middleware)等

使用STM32CubeMX软件可以快速配置STM32工程,生成Keil工程文件以及初始化生成统一风格的C代码,以下为使用STM32F446开发板生成工程的演示

STM32CubeMX界面介绍

通常我们直接选择ACCESS TO MCU SELECTOR直接进入STM32 MCU型号的选择界面,也可以点击工具栏中的File–> New Project进入

STM32CubeMX新建工程

STM32CubeMX软件提供了两种新建工程的方式:

  1. 基于芯片
  2. 基于ST官方发布的开发板

使用基于ST官方发布的开发板新建工程时,引脚分配、外设设置和时钟配置等步骤已经自动完成

芯片选择

  1. 首先在Commercial Part Number中输入芯片型号并查找
  2. 其次选择STM32F446RCT6
  3. 点击Start Project开始配置资源

配置资源

选择好开发板后,我们就可以进行后续的STM32资源配置了

SYS配置(System Setting)、SYS Mode and Configuration

选择DebugSerial Wire,这样后续就可以使用ST-Link仿真器来下载与调试程序,同时引脚PA13的功能将变为SWDIO、引脚PA14的功能将变为SWCLK

引脚功能英文全称说明
PA13SYS_JTMS-SWDIOJTAG Mode Selection-Serial Wire Debug Input/OutputJTAG模式选择-串行线调试数据输入输出线
PA14SYS_JYCK-SWCLKJTAG Clock Input-Serial Wire Debug ClockJTAG时钟输入-串行线调试时钟

Debug一些可选的模式

模式说明备注
Disable禁用调试接口
Serial Wire使用SWD接口
JTAG (4pins)使用四线制JTAG调试接口Joint Test Action Group(联合测试行动小组)
JTAG (5pins)使用五线制JTAG调试接口
Trace Asynchronous Sw使用跟踪调试接口(SWO)
RCC复位及时钟控制 (Reset and Clock Controler)

一般情况下我们选择High Speed ClockCrystal/Ceramic Resonator即可

HSE: High Speed External Clock (外部高速时钟)
LSE: Low Speed External Clock (外部低速时钟)

Setting备注
Disable禁止外部时钟
BYPASS Clock Source旁路时钟源
Crystal/Ceramic Resonator晶体/陶瓷振荡器
RCC_OSC_INRCC Oscillator(RCC 晶振输入引脚)
RCC_OSC_OUTRCC Oscillator(RCC 晶振输出引脚)
Clock Configuration 时钟配置

在下图位置输入最大频率180MHz回车,软件将自动配置时钟树

Project Manager 工程管理

Application Structure(工程文件结构) 提供了BasicAdvanced两种结构

Basic结构适用于没有使用中间件或只使用了一种中间件的项目,用户代码分为SrcInc两个文件夹;
Advanced结构适合使用了多个中间件的项目,用户代码放在Core文件夹下,每个中间件的相关文件分别放在独立的文件夹内,并分别与硬件平台相关联的Target部分以及与应用相关的App部分

Generated files (生成文件设置) 解读

Generate peripheral initialization as a pair of .c/.h files per peripheral
如果勾选该选项,用户所使用的每个片内外设将单独生成.c问就按和.h文件(当用户的项目较为复杂时,使用的片内外设较多时,建议勾选该选项)

backup previously generated files when re-generating
该选项表示在重新生成文件时,将会生成一个Backup文件夹,备份以前生成的文件

Keep User Code when re-generating
该选项表示在每次生成文件时,位于文件中指定位置的用户代码将保留。用户所编写的代码必须位于这些指定的位置,否则在重新生成文件时,用户代码将被清除

Delete previously generated files-when not re-generated
该选项表示在重新生成文件时,将会删除以前生成的、但现在不需要再生成的文件。

生成工程

当配置好上述内容后,点击右上角GENERATE CODE即可生成工程

打开生成文件夹路径,可以看到生成了以下文件及文件夹

E:.
├─Core
│  ├─Inc
│  └─Src
├─Drivers
│  ├─CMSIS
│  │  ├─Device
│  │  │  └─ST
│  │  │      └─STM32F4xx
│  │  │          ├─Include
│  │  │          └─Source
│  │  │              └─Templates
│  │  └─Include
│  └─STM32F4xx_HAL_Driver
│      ├─Inc
│      │  └─Legacy
│      └─Src
└─MDK-ARM

遇到的问题

下载解压失败

ST论坛解决方案

参考链接

STM32的JTAG和SWD模式
单片机的调试接口 JTAG SWD

### 使用 STM32CubeMX 生成 STM32 工程 #### 配置项目设置 启动 STM32CubeMX 后,在初始界面点击 "New Project" 创建新工程。随后弹出的窗口中,通过器件选型工具选择目标微控制器型号并确认所选项[^1]。 #### 初始化外设配置 进入主界面后,可以利用图形化界面配置所需的硬件资源。这包括但不限于启用或禁用特定的GPIO端口、调整串行通信接口参数以及设定定时器的工作模式等操作。对于每一个被激活的功能模块,均能进一步细化其工作属性直至满足设计需求为止。 #### 中断与DMA管理 针对需要处理中断事件的应用场景,可以在 NVIC (嵌套向量中断控制器) 设置页面指定优先级;而当涉及到数据传输任务时,则可借助 DMA 控制器来优化性能表现。这些高级特性同样可以通过直观的操作完成定制化定义。 #### 时钟树调节 为了确保系统稳定性和效率最大化,合理规划内部与时外部振荡源之间的关系至关重要。因此,在 Clock Configuration 页面提供了详细的时钟分配方案编辑功能,允许用户依据实际应用场景灵活调配各个节点频率值。 #### 自动生成初始化代码 完成上述各项准备工作之后,切换到 “Project Manager” 标签页下选取合适的IDE/编译器组合形式,并填写必要的文件保存路径信息。最后按下 Generate Code 按钮即可让 STM32CubeMX 自动构建完整的应用程序框架结构,其中包括了所有先前选定组件对应的驱动程序片段及其相应的初始化语句[^2]。 ```c // 示例:自动生成的部分初始化函数调用 HAL_Init(); SystemClock_Config(); /* 函数实现位于 system_stm32f4xx.c 文件内 */ MX_GPIO_Init(); MX_USART2_UART_Init(); /* 更多外设初始化... */ ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值