1、创建工程目录
目录结构:
- CMSIS(存放和内核相关的文件)
- Library(存放STM32F4 标准外设固件库源码文件和对应的头文件)
- Listing(存放列表文件)
- Output(存放编译过程中产生的中间文件)
- Project(存放工程文件)
- User(存放用户自己定义的源文件)
2、下载STM32的固件库
- ST的官网地址:https://www.st.com/content/st_com/zh.html
- 在搜索框搜索“STM32 standard library”
- 选择自己要下的处理器系列(我的是STM32F4xx的)
- 点击获取软件 –> 接受 –>填写邮箱–> 下载 –> 进入邮箱下载
3、创建Keil 工程
Keil版本:Keil V5 5.29.0.0
1.创建新工程
- 打开keil
- Project
- New uVision Project
- 选择刚刚创建的Project目录,并取好工程名
2.选择目标设备
就是选择所要开发的芯片设备型号,如果找不到可能是Keil版本太旧了点。
可以通过搜索框来找,比较方便。
弹出的运行时环境管理器直接关掉。
3.添加标准固件库文件
现在就要用上刚刚下载的那个固件库了。 - 将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include目录下的所有文件拷贝到工程目录的CMSIS目录下。
- 将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include目录下的stm32f4xx.h和system_stm32f4xx.h两份头文件也拷贝到工程目录的CMSIS目录下。
- 将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm目录下的启动配置文件startup_stm32f40xx.s(根据所选的芯片)拷贝也到工程目录的CMSIS目录下。
- 将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver目录下的inc和src目录拷贝至工程目录的Library目录下。
- 将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates目录下的main.c、main.h、stm32f4xx_conf.h、stm32f4xx_it.c、stm32f4xx_it.h、system_stm32-f4xx.c等文件拷贝至工程目录的User目录下。
4.添加工程分组
- 删除默认创建的分组,添加Startup、Library、User等三个分组。
- 分组后目录如下图
5.向分组添加文件
在指定的分组上右击选择 Add Existing Files to Group “xxx”
在Startup分组从工程目录的CMSIS目录选择启动配置文件startup_stm32f40xx.s进行添加。
在Library分组从工程目录的Library目录选择需要使用的外设库进行添加。
在User分组下从工程目录的User目录添加自己编写的源文件及头文件。
6.设置Target的属性
- 点击魔法棒开启Target属性配置。
- 点击Listing选项卡,点击Select Folder for Listings…配置目录为工程目录下的Listing目录。
-点击Output选项卡,点击Select Folder for Objects…配置目录为工程目录下的Output目录。并勾选Create HEX File选项。 - 点击C++选项卡,在Define填入USE_STDPERIPH_DRIVER,STM32F40XX并且在IncludePaths填入工程目录下CSMIS目录、工程目录下Library目录的inc子目录、工程目录下的User 目录的路径。
- 点击Debug,选择仿真器,我使用的是ST-Link,可以根据需要选择仿真器。
- 点击Settings,选择JTAG接口或者SWD接口,此时有出现设备说明连接上了(设备应该已经接上电脑已经驱动已经装好)。
至此,终于工程建立完成了。
参考博客1:https://blog.csdn.net/husterxmh/article/details/52356021
参考博客2:https://blog.csdn.net/qq_33852529/article/details/79046920
来源:CSDN
作者:hrx-@@
链接:https://blog.csdn.net/lang523493505/article/details/103731262