Keil5创建工程(STM32F407)
Posted GenCoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keil5创建工程(STM32F407)相关的知识,希望对你有一定的参考价值。
这里假设电脑已安装好了Keil5,安装部分不讲
1.安装芯片支持包
Keil只是一个开发平台,不带STM32的芯片支持包,对于自己要用32哪个系列的芯片需要到官网下载对应系列的安装包,比如STM32F1芯片需要下载F1的芯片支持包,F4系列需要F4的芯片支持包,如下为F4的芯片支持包,一个后缀为.pack的文件
双击.pack文件可以直接安装,此操作需要在安装Keil之后再执行,因为它会去搜索并锁定Keil的安装路径进行安装,安装过程next到finish即可
2.新建项目目录
对于完全新建的工程,需要自己新建一个空的工程目录,新建一个文件夹,下面放5个子文件夹,分别命名 CORE、FWLIB、OBJ、SYSTEM、USER,每个文件夹在后续会放置不同的工程文件
3.新建工程new project
打开Keil5,顶部菜单栏选择 Project→New uVision Project...
创建新工程
给工程命名,路径选择在上一步创建的 USER 文件夹,这里新建的也是后续用来打开工程的文件
保存后进行工程所用芯片的选择,需提前安装好芯片支持包,否则这一步无法进行,在这里选择STM32F07,按所用芯片再选择407的哪一款,点击 OK
随后跳出的界面,直接关闭,外设那些文件我们自己配置,Cancel
工程创建成功后的工程目录如下,什么都没有,再看看USER文件夹,多了2个文件夹和2个工程文件,最后一个绿色图标的文件可用于打开工程,2个文件夹都为空文件夹,用于默认存放工程编译产生的中间文件,在后续操作中间文件会安排其他路径存放,这里两个文件夹可以直接删除
4.STM32固件库
STM32固件库包含了STM32外设对应的库函数c文件和h文件,以及必需的启动文件等,固件库同样的需要到官网下载
首先需要将固件库中的外设文件拷贝到工程路径中,将固件库路径 \\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\\Libraries\\STM32F4xx_StdPeriph_Driver
下的src和inc文件夹拷贝到工程目录FWLIB下,其中src 存放的是 固件库的.c 文件,inc 存放的是对应的.h 文件
拷贝固件库 \\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\\Libraries\\CMSIS\\Device\\ST\\STM32F4xx\\Source\\ Templat es\\arm
到工程目录CORE下,文件 startup_stm32f40_41xxx.s为启动文件
拷贝固件库 \\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\\Libraries\\CMSIS\\Includ
如下4个相关核心文件到工程目录CORE下
现在工程目录CORE下已经拷贝了这些文件
将固件库 \\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\\Libraries\\CMSIS\\Device\\ST\\STM32F4x x\\Include
拷贝到工程目录USER下
将固件库 \\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\\Project\\ STM32F4xx_StdPeriph_Templates
拷贝到工程目录USER下
拷贝完成后的USER文件夹
5.工程文件添加
回到Keil5,虽然在工程路径下拷贝过来很多文件,但是Keil上的工程目录依旧是空的,需要手动添加文件进来,右键Keil工程目录 Target 1 → Manage Project Items...
双击原有的项目名Target 1,将其修改成DHT11
在Groups中修改原有的Source Group 1为CORE,在新建2个组分别命名为FWLIB和USER
选中FWLIB组,点击右下角Add Files添加外设对应的.c文件
切换到工程目录FWLIB的src文件夹,除了 stm32f4xx_fmc.c
之外,其他文件全部选中,Add
同样的方法,添加启动文件到CORE中,需要把文件类型切换成All files
USER添加3个.c文件,到这文件添加完了,点OK
添加完的Keil工程目录如下
添加头文件路径,点击小魔术棒,选中工程中FWLIB\\inc,CORE,USER三个路径添加进来
下一步,添加全局宏定义,点击小魔术棒,选到C/C++项,在宏定义输入框键入 STM32F40_41xxx,USE_STDPERIPH_DRIVER
编译输出配置,切换到Output,点击Select Folder Objects…选择工程中的OBJ文件夹用于存放编译产生的中间文件,然后再勾选Create HEX File创建十六进制文件,OK保存
6.源码修改及编译
拷贝进来的源码文件需要做些修改,打开Keil工程USER组下的stm32f4xx_it.c文件,将32行的 #include "main.h"
和144行的 TimingDelay_Decrement();
删除或屏蔽掉,否则会出现编译出错
将main.c文件中的内容删除,写上基本程序
/* Includes ------------------------------------------------------------------*/
#include "stm32f4xx.h"
/* Private functions ---------------------------------------------------------*/
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/* Infinite loop */
while (1)
{
}
}
点击工程编译进行整个工程编译
在控制台可以看到编译日志,可以成功生成十六进制文件表示工程配置没问题
7.工程烧录
电脑先接上J-LINK模块。点小魔术棒,选Debug项,烧写器位置选择J-LINK,再点击Settings进行烧写器配置,按实际用到的烧写器不同需要做不同的配置
J-LINK接口选择SW,也就是用小的J-LINK模块来烧写程序,在电脑接上J-LINK后再进行Keil配置时,Keil会去读取J-LINK的信息显示在界面上,选择SW接口后,右侧一般会显示一些SW的参数,偶尔会因为电脑卡顿的原因或者连接的J-LINK是坏的,右侧参数没显示出来,先保存配置后进行程序烧写来验证是否烧写器有问题
把J-LINK接上STM32F407的板子,点击程序烧写
当出现以下信息时,表示程序已经上传成功了,如果上传不成功的话,会提示是程序有问题或者没连接到J-LINK等
以上是关于Keil5创建工程(STM32F407)的主要内容,如果未能解决你的问题,请参考以下文章
freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5
STM32F407开发板用户手册第4章 STM32F407工程模板建立(MDK5)