通过ST官方SPL建立STM32FXXX工程

  据我了解目前很多学生(包括曾经的我)在第一次接触STM32时都是使用的开发板以及相应的模板工程,比如野火、尚学等等。无一例外地这些模板工程已经给我们配置好了基于官方Standard Peripheral library (标准外设库)的板级支持包(BSP),并且提供给我们了相关外设的简单例程,基于这种形式的学习有一下几点好处:

1、让我们从系统的、宏观的角度去理解STM32工程;
2、避免了繁杂的配置过程、降低了学习难度;
3、上手速度快、效率很高(在好的教程下几天就可以掌握基本外设的使用);

  但是在此之前让同学们了解一下STM32工程是如何建立的是非常有必要的,因为在学习的过程中如果对工程缺少了解会在很多不起眼的地方犯一些低级错误,造成不必要的时间浪费,此外在遇到问题时不及时解决,心存疑问会降低学习效率,消耗学习激情(特别是对那些有强迫症的童鞋)。


言归正传!!! 如何通过ST官方SPL建立STM32FXXX工程呢?(STM32FXXX意味着对大多数STM32芯片都适用).
特别提醒:本文介绍不只是一个具体的方法,而是针对大多数芯片建立工程的一种思路,只要有相应芯片的官方的SPL,那么工程建立的流程就差不多,配置BSP也是大同小异。

一、 下载ST官方SPL库 (本文以STM32F103为例)

链接:http://www.stmicroelectronics.com.cn/zh/microcontrollers/stm32f1-series.html?querycriteria=productId=SS1031
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述
固件库下载:
点击下载 提取码:60m7

二、 利用IDE(集成开发环境)建立工程

1. 建立工程文件夹,如下图所示:

这里写图片描述

2. 将SPL中的库文件、启动文件、标准接口文件等拷贝到工程文件夹中:

A、 其中CMSIS中包含:
这里写图片描述
它们来自SPL文件的(注意文件路径):
这里写图片描述
以及
这里写图片描述

其中startup中包含:
这里写图片描述
关于SPL中startup文件里有多个启动文件的选择参考如下:
这里写图片描述
这里写图片描述

扫描二维码关注公众号,回复: 1938994 查看本文章

B、 其中FwLib中包含:
这里写图片描述
它们来自:
这里写图片描述
src和inc里面包含了固件库的源文件和头文件。

C、 其中User中包含:
这里写图片描述
它们来自:
这里写图片描述

3. 建立工程:

特别提醒:本文使用Keil4.7来建立的工程文件,其他版本类同
Keil5 点击下载 提取码:v7dk

A、选择芯片:
这里写图片描述

确认后会弹出如下图所示提醒框,问是否添加对应芯片的启动文件(该软件集成很多芯片的启动文件),由于之前我们自己已经添加了启动文件,因此在此选择不添加。

这里写图片描述

B、向工程添加“组“和“文件”
这里写图片描述

在下窗口中可以修改项目名称、添加组、添加文件(其中“组”就是之前建立的工程文件夹中的子文件、“文件”就是相应子文件夹中的文件),效果如下图所示:
注意:这里向工程添加的文件和 之前向工程文件夹添加的内容相同,不要忘记添加所有.h文件和必要的启动文件,这里启动文件添加后缀为_hd.s的启动文件(启动文件的选择可参考上面对选择启动文件的描述)。
这里写图片描述

这里写图片描述

这里写图片描述

C、工程配置

这里写图片描述

目标设置:
这里写图片描述

输出项设置:
这里写图片描述

列表项设置:
这里写图片描述

C/C++项设置:
这里写图片描述
注意:预设宏定义之间用逗号隔开!!!

这里写图片描述

debug项设置:
这里写图片描述

下载参数设置项:
这里写图片描述

工具项设置:
这里写图片描述

注意这里面的下载器选择需要和Debug项中的相同,这里都选择的是J-LINK。

  除了J-LINK之外,STM32常用的下载器还有ST-LINK(其好处在于数据传输只用到两根线)。针对本次开发板,还可以用的是串口ISP下载,关于ISP下载做如下讲解:

  用ISP下载时其工程配置可以同上,关键的是在OutPut选项里面要勾选Creat HEX File,该文件输出在OutPut所保存的文件夹,这里是在User中Objects文件夹里面,该文件的后缀是 .hex 。此外,还需要一个stm32串口下载软件进行串口下载程序
软件下载:
点击下载 提取码:4fqi

这里写图片描述

4. 编译下载:

如果按照上述操作后进行编译,会出现如下问题:

这里写图片描述

这个问题的出现是因为在SPL中的main函数里面(我们直接复制过来的)引用了#include “stm32_eval.h”及其相关内容,这是官方用于评估板的库函数(里面对评估板硬件接口进行了重定义),由于我们没有用官方的评估板,最直接的解决办法就是将main函数中多余的函数删除,最后main函数如下图所示:

这里写图片描述

然后在进行编译就会顺利通过!!!

至此已经完成了基于官方SPL库的STM32FXXX工程建立。

最后总结一下:基于官方SPL的建立工程的思路:

1. 首先明确SPL中存在哪些文件,它们都有什么用;

2. 基于SPL和自己的需求建立工程文件夹并向其中添加SPL中必要的文件,如启动文件、固件库、系统文件;

3. 建立工程并向其中添加“组”和“文件”;

4. 配置工程;

5. 编译下载;

猜你喜欢

转载自blog.csdn.net/yc5300891/article/details/76447103
今日推荐