STM32部分:3、STM32CubeMX 工程创建

飞书文档https://x509p6c8to.feishu.cn/wiki/LfMpwjktZiMAuMkayt6c0LGZnpx

1、打开STM32CUBEMX,选择File->New Project


 

如果首次使用,可能会自动下载一些依赖包,可以等待下载完成。

2、选择对应芯片 MCU/MPU Selector->输入“STM32F103RC”->选择搜索到的芯片"STM32F103RCTx"->Start Project

点击Start Project后,等待创建完成即可看到下方界面。

设置时钟源

芯片要运行起来,必须要有时钟源,在STM32中,我们可以选择外部或内部时钟作为芯片时钟源。

这个图中,我先只关注LSI HSI 、LSE HSE和HCLK

内部时钟 LSI HSI

STM32 MCU内部自带RC振荡电路,其内部时钟就是RC振荡器产生的。

但是RC振荡器精度远低于晶振,且容易受到温度的影响。

外部时钟 LSE HSE

外部时钟一般有两种接法

外部接有源晶振或其他直接时钟输入源:BYPASS Clock Source模式(旁路时钟源)

外部接无源晶振:Crystal/Ceramic Resonator模式(晶体/陶瓷晶振)

如果需要选择外部时钟,在RCC界面配置HSE和LSE即可

HSE高速时钟设置为外部无源晶振,LSE为低速时钟,可以不设置,因为我们板卡没有接低速晶振,当用到RTC,并且对精度有要求才加。

同时配置芯片运行时钟频率,这里我们设置HCLK为72,按回车后,会自动生成其它配置。

  1. 外部时钟HSE 8MHz
  2. PLL倍频9倍(8*9=72)
  3. 系统时钟来源选择为PLLCLK

设置烧录调试方式

此步骤非常重要,不开启会导致烧录后,Jlink找不到SWD设备,请记得每个工程都需要开启

STM32作为控制芯片时,程序烧写非常关键的一步,而烧写接口的稳定性及必要时的简洁性就显得尤为重要。目前常用的两种接口是JTAG和SWD,而我们板卡使用SWD接口作为调试接口,SWD(Serial Wire Debug 串行调试),接口仅需4个,分别是VCC、GND、SWIO(双向数据接口)、SWCLK(时钟)。

优点

  • 高速模式更可靠;
  • 接线少,占用的GPIO资源少;
  • SWD搭配ST-Link仿真器使用,相比于JTAG的J-Link,更便宜

打开System Core选项卡,单击SYS选项。

SWD模式就选择serial Wire Debug。JTAG模式就选择JTAG,4pin和5pin的区别多了一个复位引脚
stlink调试就是SW模式,jlink调试就是JTAG模式

此步骤非常重要,不开启会导致烧录后,Jlink找不到SWD设备,请记得每个工程都需要开启

设置工程

点击顶部工程管理,设置工程名称,设置工程保存路径,选择开发环境,如果使用keil开发,则选择MDK-ARM。
注意:不管工程名称还是路径都不要有中文,否则后面编译文件会出错。

Project Name:工程名称
Project Location:点击后面的"Browse"选择你想要将生成的工程保存到哪个目录里面。
Application Structure:应用程序结构
-Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)
-Advanced:相反就是包含中间件,一般针对相对复杂一点的工程,选择这个,后续方便扩展。
Toolchain/IDE:根据你用的编译软件进行选择 使用KEIL就选择keil的对应版本。

源码输出设置

点击左侧Code Generator.选中仅复制需要的库,否则生成的工程会很大.
选择将外设配置为单独的.c和.h文件.

copy all used libraries into the project folder
复制所有库文件(不管工程需要用到还是没用到)到生成的工程目录中。
Copy only the necessary library files:
只复制必要的库文件。这个相比上一个减少了很多文件。比如你没有使用CAN、SPI…等外设,就不会拷贝相关库文件到你工程下。
Add necessary library files as reference in the toolchain project configuration file :
在工具链项目配置文件中添加必要的库文件作为参考。这里没有复制HAL库文件,只添加了必要文件(如main.c)。相比上面,没有Drivers相关文件。

Generate peripheral initialization as a pair of’.c/.h’ files per peripheral:
每个外设生成独立的.C .H文件,方便独立管理。不勾:所有初始化代码都生成在main.c 勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。

Backup previously generated files when re-generating:
在重新生成时备份以前生成的文件。重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。

keep user code when re-generating:
重新生成代码时,保留用户代码(前提是代码写在规定的位置。也就是生成工程文件中的BEGIN和END之间。否则同样会删除。后面会根据生成的工程进行说明)

delete previously generated files when not re-generated:
删除以前生成但现在没有选择生成的文件 比如:之前生成了led.c,现在重新配置没有led.c,则会删除之前的led.c文件。(此功能根据自身要求进行取舍)

点击右上角的GENERATE CODE,就可以生成工程

最后点击Open Project,就可以用你已经安装Keil MDK打开工程。

点击Build,如果最终编译完成没有报错误,就完成STM32CubeMX的搭建啦。

本节课工程参考飞书文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值