飞书文档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,按回车后,会自动生成其它配置。
- 外部时钟HSE 8MHz
- PLL倍频9倍(8*9=72)
- 系统时钟来源选择为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的区别多了一个复位引脚 |
此步骤非常重要,不开启会导致烧录后,Jlink找不到SWD设备,请记得每个工程都需要开启
设置工程
点击顶部工程管理,设置工程名称,设置工程保存路径,选择开发环境,如果使用keil开发,则选择MDK-ARM。
注意:不管工程名称还是路径都不要有中文,否则后面编译文件会出错。
Project Name:工程名称 |
源码输出设置
点击左侧Code Generator.选中仅复制需要的库,否则生成的工程会很大.
选择将外设配置为单独的.c和.h文件.
copy all used libraries into the project folder: |
点击右上角的GENERATE CODE,就可以生成工程
最后点击Open Project,就可以用你已经安装Keil MDK打开工程。
点击Build,如果最终编译完成没有报错误,就完成STM32CubeMX的搭建啦。
本节课工程参考飞书文档