1.下载官方固件库

在下面的官方网站可以下载到STM32的固件库,根据自己的单片机进行选择,我的是STM32F103C8T6,所以点击F1

https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html

然后点击Get latest下载最新版本的固件库

下载完毕之后得到固件库的压缩包,我们将它解压出来,我们只需要固件库中的部分文件

2.建立新工程

新建一个名为“STM32模板”的文件夹

打开Keil软件,新建一个工程

路径选择为我们刚才新建的文件夹,为了保证工程的通用性,命名为“Project”

芯片选择STM32F103C8T6,这个芯片包没有的话要去下载安装一个,如果是按照下面网址中Keil教程安装的Keil就已经有这个芯片包了

https://www.fastboard.cn/73/

点击OK后我们的新工程就建立了

3.将固件库中需要用到的文件添加到工程文件夹中

打开下载好的固件库

打开路径STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

这些是我们的芯片启动文件,实际上我们只需要一个,但是F1系列的芯片有很多种类,为了模板通用性,我们全部复制

回到我们新建立的“STM32模板”文件夹当中,在这里我们可以看到已经建立好了的工程的文件,在这里我们需要再建立5个文件夹存放个人文件以及固件库中的文件

分别命名为Start、User、Library、System、Hardware

下面是五个文件夹存放的文件描述

Start:存放启动文件,启动文件是用汇编语言写的,里面包含了向量表、堆栈初始化、系统初始化、跳转到主函数等等数据。

User:存放用户文件,例如最重要的main.c文件

Library:存放固件库中封装好的驱动单片机外设的文件

System:存放系统文件,例如延时函数文件

Hardware:存放以后会用到的外接模块的文件,例如显示屏、按键等的驱动文件

 

建立完这5个文件夹后我们打开Start文件夹,将刚刚复制的文件粘贴在里面

再回到固件库中这个路径STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

复制下图中的三个文件到Start文件夹

再将固件库中STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport的两个文件复制到我们新建立的Start文件夹中

到这里我们的Start文件夹就配置好了,配置完毕我们的Start文件夹中应该有13个文件

下面我们配置Library文件夹

打开我们固件库中的路径STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver,将这里的两个文件夹里面的内容全部复制到我们新建立的Library文件夹中(注意是这两个文件夹里面的文件并不是这两个文件夹)

复制过来后如下图,一共46个文件

到这里我们的Library文件夹也配置好了

接下来配置User文件夹

打开User文件夹,建立一个名为main.c的文件

再打开固件库STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template路径,复制下图的三个文件到User文件夹

User文件夹配置好之后如下图所示

到这里我们的文件夹就配置完毕了

4.配置工作组

我们回到Keil软件中,点击下图位置管理组

新建5个组,命名为我们刚新建的五个文件夹

依次将组中的文件添加上,点击Start组,再点击右边的Add Files

打开Start文件夹,点击All Files,.s后缀的文件只需要选择一个,我的F103C8T6是md文件,具体的芯片用哪一个文件自行百度,其他的文件全部选中点击Add,一共六个文件,如图所示

Start组就添加好了

接下来添加Library组,操作类似,将Library文件夹中的所有文件添加到组中

接下来是配置User组,将User文件夹中的所有文件添加到组中

添加完毕后点击OK,到这里我们组配置就完毕了

6.添加宏定义与编译路径

点击工具栏中的魔术棒按钮

点击C/C++一栏

在Define一栏中输入USE_STDPERIPH_DRIVER,这个宏定义的意思就是使用标准库的意思,加入这个之后就可以调用ST封装的哪些驱动外设的函数了,不添加这一行只能操作寄存器来配置外设

再点击下面的Include Paths后面的三个点添加编译路径

把我们新建的五个文件夹路径都添加进去,如图所示

添加完了点击OK

7.编写main.c

点击User工作组前方的加号展开,双击main.c

接下来就可以进行编写了,输入以下内容

#include "stm32f10x.h"                  // Device header

int main(void)
{
	while(1)
	{
		
	}
}

点击编译,显示0错误0警告(需要注意的是文件中的最后一行必须为空行,否则会报警告,如下图,第十行是空的)

8、建立成功

到这里我们的工程就建立成功了,可以在此基础之上配置你需要的一些外设、用户逻辑等等,创建的过程虽然繁琐,但是好在我们建立了这样一份基础工程,保存妥当,以后需要用到的时候直接复制这一份文件,再去编写其他的程序。

好了,到这里我们本次建立工程的文档就结束啦

 

本次笔记基于B站UP主江协科技STM32教程总结而来

发表回复

后才能评论