本教程将详细指导你完成 STM32F103 开发环境的安装、器件包的安装以及工程模板的创建与使用。我们将基于 Keil MDK 开发工具,详细讲解每一步操作,包括文件结构的创建、移植过程、移植文件名称及对应目录,以及 Keil 分组目录和对应文件的说明。
Keil MDK 社区版是 ARM 官方推出的免费版本,适用于非商业用途。它支持所有基于 Cortex-M 的微控制器,并且没有代码大小限制。
访问下载页面 打开 Keil MDK 社区版下载链接:Arm Keil | MDK-Community edition。
注册账号 如果没有账号,点击 Sign up
进行注册。填写邮箱并获取验证码,完成注册。
登录并下载 使用注册的账号登录,点击 Download Keil MDK
下载安装包。
安装 Keil MDK
右键以管理员身份运行安装包。
按照提示选择安装路径(路径中不能包含中文)。
填写个人信息(可随意填写)。
等待安装完成。
激活 Keil MD极
以管理员身份运行 Keil MDK。
点击 File -> License Management
。
点击 Get LIC via Internet
,按照提示填写信息并获取激活码。
将激活码粘贴到 New License ID Code (LIC)
中,点击 Add LIC
完成激活。
访问 STM32 官网 打开 STM32 官网:https://www.st.com,搜索并下载 STM32F1 系列的器件包(Pack)。
下载 Pack 文件 找到 STM32F1xx_DFP
器件包并下载。
双击安装 Pack 文件 下载完成后,双击 .pack
文件进行安装。
按照提示完成安装 点击 Next
,等待安装完成。
验证安装 打开 Keil MDK,点击 Project -> Manage -> Pack Installer
,查看是否已安装 STM32F1xx_DFP
。
新建工程文件夹 在本地创建一个文件夹,例如 STM32F10x_Project
,注意路径中不能包含中文。
打开 Keil MDK 并创建工程
打开 Keil MDK,点击 Project -> New uVision Project
。
选择刚才创建的文件夹,输入工程名称,例如 STM32F103_Template
。
点击 Save
。
选择芯片型号 在弹出的窗口中选择 STM32F103C8
(根据实际芯片型号选择),点击 OK
。
选择 CMSIS 固件 在弹出的窗口中选择 CMSIS -> CORE
和 Device -> Startup
,点击 OK
。
创建文件夹结构 在工程文件夹 STM32F10x_Project
中创建以下文件夹:
Projects
:存放不同 IDE 的工程文件。
MDK-RAM
:存放 Keil MDK 的工程文件。
Drivers
:存放所有驱动相关文件。
Board
:存放与板子初始化和链接相关的文件。
BSP
:存放底层相关的支持包。
Module
:存放各类软件模块,如定时器、状态机等。
STM32F10x_StdPeriph_Driver
:存放 STM32 标准外设库文件。
APP
:存放应用程序,由用户编写,包含 main
函数。
CMSIS
:存放 CMSIS 核心文件。
目录结构图示
STM32F10x_Project/ ├── Projects/ │ └── MDK-RAM/ ├── Drivers/ │ ├── Board/ │ ├── BSP/ │ ├── Module/ │ └── STM32F10x_StdPeriph_Driver/ ├── APP/ └── CMSIS/
复制库文件与启动文件 从 STM32 标准外设库中复制以下文件到对应文件夹:
CMSIS
:STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
Drivers/STM32F10x_StdPeriph_Driver
:STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver
Drivers/Board
:STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Template
在 Keil 中添加分组
右键 Target 1
,选择 Add Group
,创建以下分组:
Board
BSP
Module
STM32F10x_StdPeriph_Driver
APP
CMSIS
添加文件到分组
Board
分组:添加 Drivers/Board
文件夹中的文件。
BSP
分组:添加 Drivers/BSP
文件夹中的文件。
Module
分组:添加 Drivers/Module
文件夹中的文件。
STM32F10x_StdPeriph_Driver
分组:添加 Drivers/STM32F10x_StdPeriph_Driver/Src
文件夹中的所有 .c
文件。
APP
分组:添加 APP
文件夹中的文件。
CMSIS
分组:添加 CMSIS/Src
文件夹中的 core_cm3.c
和 system_stm32f10x.c
。
添加头文件路径
点击 Project -> Options for Target -> C/C++
。
在 Include Paths
中添加以下路径:
Drivers/Board
Drivers/BSP
Drivers/Module
Drivers/STM32F10x_StdPeriph_Driver/Inc
APP
CMSIS/Inc
创建 main.c
文件
右键 APP
分组,选择 Add New Item to Group
,创建 main.c
文件。
编写代码 在 main.c
中添加以下代码:
#include "stm32f10x.h"
#include "board_init.h"
void Delay(uint32_t count) {
while (count--);
}
int main(void) {
// 板子初始化
Board_Init();
// 使能 GPIOC 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
// 配置 GPIOC Pin 13 为推挽输出
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStruct);
while (1) {
GPIO_ResetBits(GPIOC, GPIO_Pin_13); // 点亮 LED
Delay(1000000);
GPIO_SetBits(GPIOC, GPIO_Pin_13); // 熄灭 LED
Delay(1000000);
}
}
编译工程 点击 Build
按钮(或按 F7
),确保没有错误和警告。
下载程序 连接开发板,点击 Download
按钮(或按 F8
),将程序下载到开发板。
从 STM32 标准外设库中复制模板 找到 STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Template
,将其复制到本地并重命名。
打开工程 在 Keil MDK 中打开复制的工程文件(.uvprojx
)。
调整头文件路径 点击 Project -> Options for Target -> C/C++
,修改头文件路径为相对路径。
编译工程 点击 Build
按钮,确保没有错误和警告。
下载程序 连接开发板,点击 Download
按钮,将程序下载到开发板。
通过本教程,你已经完成了 STM32F103 开发环境的安装、器件包的安装以及工程模板的创建与使用。接下来,你可以基于模板开发自己的应用程序,探索 STM32F103 的更多功能!