为了更好地管理工程文件,我们习惯性将不同作用的文件分别存放在以下各文件夹。
文档文件夹,.md后缀名为Markdown文本文件
存放自述文档,描述工程详情。
固件文件夹
存放STM32库函数文件
硬件文件夹
存放外设BSP(扳级支持包)文件。
工程文件夹
存放Keil工程生成文件
.uvprojx后缀名为Keil工程打开文件;Objects文件夹存放编译产生的文件,其中.hex .bin .axfMCU程序烧录文件也存放在此。STM32启动文件夹
存放STM32启动配置文件
.s后缀名为STM32启动文件;
stm32f10x.h为STM32的外设寄存器描述文件,作用与51单片机reg52.h头文件一样;
system_stm32f10x.c 和 system_stm32f10x.h主要用于配置时钟;
core_cm3.c和core_cm3.c为内核寄存器的描述文件。
用户文件夹
存放主程序文件
main.c为工程主函数;stm32f10x_conf.h用来配置库函数头文件的包含关系,所有库函数都需要该文件;stm32f10x_it.c和stm32f10x_it.h用来存放中断(interrupt)函数。清除执行器
双击运行,清除编译生成的文件,减小工程文件夹的占用大小,便于存放和分享工程。

创建工程文件夹,文件夹里包含上述文件夹;

从STM32库文件中复制以下文件分别粘贴到个文件夹
User

Start

FIrmware

进入Keil5新建工程,存放到工程文件夹(Project)中;
点击工具盒新建组,并将文件夹内的文件添加到各组中;
STM32F1系列型号
| 缩写 | 释义 | Flash容量 | 型号 |
|---|---|---|---|
| LD_VL | 小容量产品超值系列 | 16-32K | STM32F100 |
| MD_VL | 中容量产品超值系列 | 64-128K | STM32F100 |
| HD_VL | 大容量产品超值系列 | 256-512K | STM32F100 |
| LD | 小容量产品 | 16-32K | STM32F101/102/103 |
| MD | 中容量产品 | 64-128K | STM32F101/102/103 |
| HD | 大容量产品 | 256-512K | STM32F101/102/103 |
| XL | 加大容量产品 | 大于512K | STM32F101/102/103 |
| CL | 互联型产品 | - | STM32F105/107 |
Start组中,只需添加
startup_stm32f10x_md.s*

点击魔术棒添加头文件引用路径;


点击魔术棒添加宏定义;
在“C/C++”预定义中定义“USE_STDPERIPH_DRIVER”宏,就允许“使用标准外设驱动”了
在stm32f10x.h头文件的8296行处复制宏USE_STDPERIPH_DRIVER

点击魔术棒 \ c/c++,粘贴在Define处

点击魔术棒选择V5编译器;
MDK新版的V6编译器编译时会报错,则需要选择V5版本 下载MDK V5.36并安装 MDK V5.36 : https://www.myir-tech.com/customerService/download.asp?anclassid=71

将V5版本编译器添加到Keil5中


选择V5编译器

点击魔术棒选择调试器;
下载器为ST-Link则选择ST-Link



编译。
编写main函数,并编译


Keil5点击编译正常,烧录和调试直接闪退
解决办法 https://blog.csdn.net/regard1/article/details/129580681
https://blog.csdn.net/wcanon/article/details/129645304
新建工程步骤
本文章使用limfx的vscode插件快速发布