前言:
网络上提供的教程和实际有很大出入,实操中遇到了很多问题并且会变复杂(可能适用于老版本的Keil),非常不适合入门。
我花了3天时间整理出如下资料。希望对大家有所帮助。另外,本文中如果有错误或需改善的地方,欢迎留言,谢谢!
一、下载安装keil5.(这里不多做介绍,网上有很多资料了)
二、下载安装stm32的pack包。
- 正常界面如下,使用浏览器的ctrl+F功能快速搜索到对应的系列进行下载。
- 如果网页打不开,或者找不到下载包的地方,解决方法请点击这里。
- 我使用的芯片是STM32F103C8T6,所以下载的是下图中第一个文件(下载后的是zip文件,不是pack包。我下载了另一个系列,也是这样的)。
- 只需要把后缀名zip改为pack。然后双击打开安装即可。
三、新建stm32项目
这里我是全程手动创建的项目,被网上的资料带跑偏了,删了又可惜,还是留着把。快速创建项目请转至大佬的博文(点这里)
-
准备工作:解压刚才下载的zip文件。文件夹内容如下。
-
开始创建项目。
找个地方创建一个文件夹,作为项目目录。然后给它取个好听的名字(我这里命名为了"demo")。 -
把刚才pack包里面 名叫“Device”的文件夹复制进去。
“Device”文件夹中的文件功能如下。后续开发,主要使用第三个文件夹里面的函数库。
-
项目目录下,打开Device\Source\ARM。这里面保存的是程序启动文件,只能保留一个,需要根据自己的MCU型号进行选择。
我使用的是stm32F103C8T6,只需保留如下文件。
文件名后缀代表的含义
后缀 | 含义 | 备注 |
---|---|---|
hd | 高密度产品 | FLASH 256KB ~512KB ,H:high |
md | 中密度产品 | FLASH 64KB~128KB,m:middle |
ld | 低密度产品 | FLASH 16KB ~32 KB ,l:low |
cl | 互联型产品 | stm32f105/107系列 |
vl | 超值型产品 | stm32f100系列 |
xl | 高密度型产品 | stm32f101/103系列 |
-
在Keil5的安装目录中,搜索以下三个文件,都复制到项目的 Device\Include文件夹中。
(1)cmsis_armcc.h
(2)cmsis_compiler.h
(3)cmsis_version.h
(4)core_m3.h
(5)RTE_Components.h
-
在项目的根目录下,再新建一个USER文件夹,用于存放自己的代码。
-
打开Keil5,新建项目,位置选择刚才创建的demo文件夹。然后i给项目取个名字,保存一下。
-
选择芯片系列号,点击ok。
-
这个界面用于配置文件的,我们是手动复制粘贴,所以直接点ok跳过。
-
点击积木一样的图标,中间部分新建以下分组。
其中CMSIS组用于存放启动文件。把Device文件夹下的所有文件全部添加进去(点击右下角的【Add Files】即可添加文件)。
FWLIB组用于存放官方的函数库。 把Device文件夹里面“inc”、“src”以及 “templates”三个文件夹中的所有内容添加进去。(templates这个文件夹里面的内容其实可以移动到USER文件夹下,它里面的文件用于配置项目的基本参数和中断程序)
USER组用来存放自己的文件,这里只要新建这个分组就行 。
**另外注意:**选择文件的时候,文件类型要选择ALL files,不然无法包括全部文件。
四、调整项目的设置菜单。
- 点击“魔术棒”——【Output】——勾选【Create HEX File】
- 选择【c/c++】,再【Define】中输入以下内容“USE_STDPERIPH_DRIVER, STM32F10X_MD”
注意:“STM32F10X_MD”这个参数需要按照flash内存大小来选择的,可参照如下规则:
256 ~512 Kbytes:输入系列号_HD,如STM32F10X_HD
64 ~128 Kbytes :输入系列号_MD,如STM32F10X_MD
16 ~32 Kbytes :输入系列号_LD,如STM32F10X_LD
3. 【c/c++】的include Paths中,把项目中所有目录全部包含进去
4. 【debug】选项中,暂时先选择【模拟调试】用于确保Keil5配置完毕。
5. 编写测试文件。
(1)新建一个main.c的文件,
(2)输入一个简单的代码,按CTRL+S保存到USER文件夹里面
(3)添加到项目中的USER组。
6.点击编译按钮,出现如下提示,说明项目配置完成了