1. 下载固件库
官方网址:https://www.st.com
工具与软件 -> 嵌入式软件 -> 安全微控制器软件 -> 微控制器软件 -> STM32微控制器软件 -> STM32标准外设软件库
直达链接:https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries.html
2. 创建工程
-
新建一个文件夹,作为项目根目录(命名随意)。
-
在该文件夹下新建3个文件夹:Libraries、User、Obj(文件夹命名可以任意,但不能使用中文或特殊符号)
-
Obj 文件夹:用于存放编译产生的 c/汇编/链接的列表清单、调试信息、 hex文件、预览信息、封装库等文件。
-
User 文件夹:用于存放用户编写的 main.c、stm32f10x.h 头文件stm32f10x_conf.h配置文件、stm32f10x it.c和stm32f10x it.h中断函数文件
-
Libraries 文件夹:用于存放 CMSIS 标准和STM32 外设驱动文件。在此文件夹下新建CMSIS和STM32F10x_StdPeriph_Driver文件夹:
-
CMSIS:存放一些CMSIS标准文件和启动文件
-
STM32F10x_StdPeriph_Driver:用于存放STM32外设驱动文件,直接从固件库中复制所有的外设驱动头文件和源文件过来。
最终整体文件结构如图:
-
-
-
新建Keil工程
- 新建项目:项目名随意(必须是英文),保存在第2步创建的根目录下。
- 选择CPU:选择与开发板对应的芯片型号(如果没有,需要先安装芯片包),选好之后会弹出在线添加固件库文件的界面,我们选择手动添加,直接关闭即可。
-
管理工程目录组
- User:存放User文件夹下的源文件
- Startup:存放STM32启动文件(startup_stm32f10x_hd.s)
- StdPeriph_Driver:存放外设驱动源文件
- CMSIS:存放CMSIS标准文件,比如系统总线时钟等初始化源文件。
-
配置魔术棒选项卡
-
Target选项卡:勾选微库Use MicroLib,不勾选的话,重定向输出实验将会出现奇怪的现象。
-
Output选项卡:(1)将输出文件夹定位到Obj文件夹; (2)勾选Create HEX File
-
Listing选项卡:将输出文件夹定位到Obj
-
C/C++选项卡:(1)因为使用库函数开发,需要对处理器类型和库进行宏定义
USE_STDPERIPH_DRIVER,STM32F10X_HD
(2)配置头文件包含路径
-
Debug选项卡:使用普中的ARM仿真器的配置
(1)选择CMSIS-DAP仿真器
(2)连接仿真器,选择Settings,选择sw模式下载及调试
(3)选择芯片型号,勾选reset and run当程序下载完成之后自动复位运行。
-
3. 编写测试代码
#include "stm32f10x.h"
int main(){
while(1)
{
}
}
在main.c中写入如下代码,并进行编译,如果提示0 Error(s), 0 Warning(s)
表示项目创建没有问题。
3.1 keil5几个无关紧要的警告
- 源文件结尾没有回车:warning: #1-D: last line of file ends without a newline
- 定义但未引用:warning: #177-D: variable "svchao_var_1" was declared but never referenced
- 定义但未引用:warning: #550-D: variable "svchao_var_2" was set but never used
抑制警告:
打开魔术棒中的C/C++选项卡,在Misc Controls中输入:
--diag_suppress=1 即关闭 #1-D的警告
--diag_suppress=1,177,550 即关闭 1, 177, 550的警告.