以正点原子精英为例
目录
1、准备工作
2、开发环境搭建
2、新建工程步骤
1、新建文件夹
1. 新建工程文件夹
![](https://img-blog.csdnimg.cn/1648065626894641924428c50c73f3ae.png)
Drivers | 存放与硬件相关的驱动层文件 |
Middle wares | 存放正点原子提供的中间层组件文件和第三方中间层文件 |
Output | 存放工程编译输出文件 |
Projects | 存放 MDK 工程文件 |
User | 存放 HAL 库用户配置文件、 main.c、 stm32f1xx_it.c、 以及我们自己编写的其它应用程序 |
2. 拷贝工程相关文件
Drivers 文件夹
BSP | 存放开发板板级支持包驱动代码,如各种外设驱动 |
CMSIS | 存放 CMSIS 底层代码,如启动文件(.s 文件)、 stm32f1xx.h 等 |
STM32F1xx_HAL_Driver | 存放 ST 提供的 F1xx HAL 库驱动代码 |
SYSTEM | 存放系统级核心驱动代码,如 sys.c、 delay.c 和 usart.c 等 |
BSP 文件夹只匹配特定开发板使用,先建好备用
SYSTEM 文件夹,可从正点原子历程中获取
STM32F*******\CMSIS 文件夹, 从固件包获取
CMSIS:
由于这个文件夹原来设计是用于匹配全部 F1 系列的芯片的,导致非常大,
部分文件对我们的例程来说不会使用到,而且浪费磁盘的存储空间,所以我们会对这个文件夹
进行精简:打开目录“CMSIS\Device\ ST\STM32F1xx”,其中的 Include 文件夹里都是芯片的头
文件我们只留下下图 这三个头文件,其他删除。
Source 文件夹下的 Templates 文件夹留下以下内容
arm 文件夹存放的是启动文件,我们只需要 startup_stm32f103xe.s,
最后就是 CMSIS 文件夹下的 Include 文件夹,里面都是内核的头文件,我们只需要留下下图内容
STM32F1xx_HAL_Driver
该文件夹我们可以直接从 STM32CubeF1 固件包里面拷贝。直接拷贝“STM32CubeF1 固件包→Drivers”路径下的 “STM32F1xx_HAL_Driver”文件夹到我们工程的 Drivers 下,保留如下内容
Middlewares 文件夹和Output 文件夹先不管
Projects 文件夹
新建叫MDK-ARM 的文件夹
User 文件夹
首先从官方固件包里面直接拷贝官方的模板工程下的 HAL 库用户配置文件和中断处理文件到我们的 User 文件夹里。官方的模板工程路径: STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL \Templates
我们需要的文件就在 Inc 和 Src 文件夹里面,在这两个文件夹里面找到: stm32f1xx_it.c、
stm32f1xx_it.h、 stm32f1xx_hal_conf.h 这三个文件,并且拷贝到我们的 User 文件夹下。
2、新建工程框架
打开 Keil uVision5, 点击菜单 Project ->New Uvision Project
保存到Projects\MDK-ARM
据自己使用的芯片型号依次选择即可(需要提前安装packs包)
DebugConfig 文件夹用于存储一些调试配置文件
Listings 和 Objects 文件
夹用来存储 MDK 编译过程的一些中间文件。这里,我们把 Listings 和 Objects 文件夹删除,我
们后面会把编译中间文件存放到 Output 文件夹。
3、添加文件
在 Project→Target 上右键,选择 Mana红绿白图标(方法二)进入工程管理界面,
按下图设置名字并添加文件
添加启动文件
该文件由 ST 官方提供,对于 STM32F103 来说有 4 个启动文件可选
p_stm32f103x6.s | Flash≤32KB | 用于小容量 F103 系列芯片的启动文件 |
startup_stm32f103xb.s | 64KB≤Flash≤128KB | 用于中容量 F103 系列芯片的启动文件 |
startup_stm32f103xe.s | 256KB≤Flash≤512KB | 用于大容量 F103 系列芯片的启动文件 |
startup_stm32f103xg.s | 768KB≤Flash≤1024KB | 用于超大容量 F103 系列芯片的启动文件 |
文件位于Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm
添加 User 源码
依次添加 stm32f1xx_it.c和 system_stm32f1xx.c 到该分组下
1、User
2、Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates
添加 SYSTEM 源码
依次添加delay.c、 sys.c 和 usart.c 到该分组下
添加 STM32F1xx_HAL_Driver 源码
按理说应该将Drivers\STM32F1xx_HAL_Driver\Src下所有文件添加,但是我们进行裁剪用到哪个添加哪个
依次添加 stm32f1xx_hal.c、 stm32f1xx_hal_cortex.c、 stm32f1xx_hal_dma.c、 stm32f1xx_hal_gpio.c、 stm32f1xx_hal_gpio_ex.c、 stm32f1xx_hal_rcc.c、
stm32f1xx_hal_rcc_ex.c、 stm32f1xx_hal_uart.c 和 stm32f1xx_hal_usart.c 到该分组下
4、魔术棒设置
1. 设置 Target 选项卡
设置 Output 选项卡
设置 Listing 选项卡
设置 C/C++选项卡
设置 Debug 选项卡
设置 Utilities 选项卡
5、新建main.c