1. STM32固件库下载
本文使用的STM32F10x系列的微控制器。我们以下载STM32F10x进行举例。
首先,打开www.st.com网址,在首页搜索栏中输入STM32F10x,进行搜索。
接下来,选择STSW.STM32054一栏,下载STM32F10x标准外设库
接下来,在弹出页面中,往后翻,会看到如下图所示的下载信息,选择get latesst下载最新版本,或者在在右边的下拉框中选择自己想要的版本。
接下来会弹出提示,让你登陆账号,登录之后即可进行下载。
2. 创建工程模板
第一步:创建或复制文件夹
(1)创建“工程模板”文件夹
(2)复制固件库中的Libraries文件夹到工程模板文件夹
(3)创建Output文件夹,用于存放输出文件
(4)创建Startup文件夹,用于存放启动文件,并将固件库文件夹中路径为F10x_Lib_V3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm中的startup_stm32f10x_hd.s文件复制到该文件夹中。该文件为大容量芯片的启动文件。
(5)创建stm文件夹,用于存放Proteus项目文件。
(6)创建User文件夹。复制F10x_Lib_V3.5\Project\STM32F10x_StdPeriph_Template\文件夹下的main.c、stm32f10x_cinf.h、stm32f10x_it.c和stm32f10x_it.h到该文件夹中。
(7)创建APP文件夹,用于存放用户编写的外设驱动程序。
经过上述步骤创建的工程模板文件夹如下图所示:
第二步:创建工程模板文件,建立文档分组。
(1)启动Keil μ Vision4软件,在刚才创建的工程模板文件夹下创建一个新项目。之后选择该工程的CPU为STMicroelectronics->STM32F103R6,点击OK
(2)弹出询问对话窗,由于后面还需要专门添加此文件,故选择“否”。
(3)建立分组并添加文件
依次单击Project->Manage->components Environment菜单项或工具栏中的按钮,系统弹出一个Manage Project Items对话框,在该对话框中的Groups项中,删除原来的Source Group1,依次添加User、Cmsis、Startup、ST Driver和APP分组,并为每个分组添加相应的源文件。其中User和Startup文件夹,添加我们刚才粘过去的.c和.s文件。
(1)User:main.c,stm32f10x_it.c
(2)Cmsis:core_cm3.c,system_stm32f10x.c
(3)Startup:startup_stm32f10x_hd.s
(4)ST Driver:stm32f10x_gpio.c、stm32f10x_rcc.c
(5)APP:此分组下面没有文件,由用户编写。
第三步:设置输出文件,添加预编译变量,包含头文件路径
(1)依次单击菜单Project->Options for target或工具栏中的按钮,弹出对话框如下图所示
(2)在Output选项卡中勾选Create HEX File,并选择输出文件夹为本文件夹下的Output文件夹。
(3)在Listing选项卡中单击Select Folder for Listings按钮,并选择输出文件夹为本文件夹下的Output文件夹。
(4)在C/C++选项卡中,在Define区域添加两个重要的预编译命令:USE_STDPERIPH_DRIVER,STM32F10X_HD。
(5)在C/C++选项卡中,单击Include Path后面的按钮,将工程中可能需要用到的头文件所在路径全部包含进来,如下图所示。
(6)在Debug选项卡中,选中Use Simulator单选按钮。点击OK按钮退出。
第四步:创建public.h文件,重写main.c文件,编译调试
(1)单击File->New,新建一个空白页面,并将其保存在User文件夹下以public.h命名。在public.h文件张输入如下代码。
#ifndef _public_H
#define _public_H
#include "stm32f10x.h"
#endif
(2)将main.c中的程序删除,写一个main的空函数,并包含公共头文件
#include "public.h"
int main()
{
}
(3)对整个工程进行编译,编译成功后,该工程模板即创建成功。
之后的Keil+Proteus仿真实验就可以建立在该模板的基础上了。