* 导师视频讲解:[去听课](https://www.bilibili.com/video/BV1Cb4y1171H?p=15)
>[success] **技术支持说明:**
>**1**.一般以自主学习为主
> **2**.可到官方问答社区中提问:[**去提问**](https://bbs.csdn.net/forums/nb-iot)
> **3**.工程师**会尽快**解答社区问题,但他们是一线开发,【**难以保证**】解答时效,解答辛苦,感谢理解!
<br/>
上节课讲解了如何创建工程,但其实ST官方已经创建好一个模板工程,开发者只需要移植该模板工程并进行必要配置即可。
<br/>
## **下载ST的标准库**
本节课需要使用ST标准库,其所在目录如图所示。
![](https://img.kancloud.cn/e5/0a/e50a703e9b9cf1ba52d39c6584ce7726_1026x586.png =250x)
>[info] 如您还没下载,可前往下载页:[前往](2384616)
<br/>
## **官方模板工程的移植**
创建一个用于存放工程文件的文件夹,并命名为Project。笔者也创建的了一个Project文件夹,在配套的资料的如下位置:
```
/STM32开发指南/STM32 Pro(Std) 主板 配套源代码/3. 移植官方标准工程模板/Project
```
<br/>
在标准库中找到官方模板工程,如图所示。
![](https://img.kancloud.cn/2a/7c/2a7cfeb067d1c475c59a07d833ccd3cb_523x172.png =500x)
<br/>
将以下目录和文件复制到刚才创建的 Project 目录中,如图所示。
![](https://img.kancloud.cn/35/85/3585dcafef7ea4d8f648dd80b21f67b9_816x418.png =500x)
<br/>
复制后的结果如图所示。
![](https://img.kancloud.cn/f0/00/f0001350d726ee412424aa5f59c90d98_318x300.png)
<br/>
接着,把标准库中的 Libraries 目录也复制过来,如图所示。
![](https://img.kancloud.cn/1a/32/1a32fa2543e409959570924963a95ce3_337x329.png)
<br/>
打开MDK-ARM 目录,然后打开工程文件,如图所示。
![](https://img.kancloud.cn/fd/d0/fdd0b3eed3bc89bd2eeec578cf9c8772_320x199.png)
<br/>
打开文件管理器,如图所示。
![](https://img.kancloud.cn/bf/b6/bfb6a65d08b94461ea4c664100c43392_861x382.png =500x)
<br/>
选择芯片型号 STM32F030,然后点击Set as Current Target,如图所示。
![](https://img.kancloud.cn/c9/05/c9050a08617a7dabeb17152f35b858c2_803x599.png =500x)
<br/>
除 STM32F030 外,把其它型号全部删除。
![](https://img.kancloud.cn/8a/c1/8ac1183fd43770d4562c15d93970f247_803x599.png =500x)
###
删除方法如下:
* 选中对象,然后点击红色“Delete”,如图所示。
![](https://img.kancloud.cn/05/7e/057e32fe91b3f5c79c57d52a2cf21a94_803x602.png =450x)
* 删除完成,如图所示。
![](https://img.kancloud.cn/b7/b4/b7b4386c70f3d5eaa8a73357b5f81c55_803x602.png =450x)
<br/>
删除CMSIS中的所有文件
* 选中CMSIS中的所有文件,并点击上方的交叉图标,如图所示。
![](https://img.kancloud.cn/61/3b/613b409e6c61798d085c5c43d1a6a50a_803x599.png =450x)
* 删除完成,如图所示。
![](https://img.kancloud.cn/dd/a4/dda4b8ff3f82089dd63998edfa2a3478_803x601.png =450x)
<br/>
给CMSIS重新新添加文件,步骤如下:
* 点击Add Files,如图所示。
![](https://img.kancloud.cn/08/68/0868d6ab051eedf034fdddc2d726da03_803x601.png =450x)
###
* 返回上一级目录,如图所示。
![](https://img.kancloud.cn/2c/78/2c78c814cdc4e457b01f267d3284a3fc_911x649.png =450x)
###
* 进入 Libraries 目录,如图所示。
![](https://img.kancloud.cn/c7/c0/c7c0043dc32c600743964860b89faf01_911x646.png =450x)
###
* 进入 CMSIS 目录,如图所示。
![](https://img.kancloud.cn/90/d4/90d4252f5fd58d647e27ec8cb4b5f995_911x646.png =450x)
###
* 进入 Device 目录,如图所示。
![](https://img.kancloud.cn/e0/e5/e0e52e904859b9786d4e8d2b2cd7d7f8_911x646.png =450x)
###
* 进入 ST 目录,如图所示。
![](https://img.kancloud.cn/ef/03/ef03cca09cdc6c30c5ac0cf69ef7434f_911x646.png =450x)
###
* 进入 STM32F0xx 目录,如图所示。
![](https://img.kancloud.cn/41/9f/419f5778dabc8b210fa817e506b2df10_911x646.png =450x)
###
* 进入 Source 目录,如图所示。
![](https://img.kancloud.cn/c2/61/c261e19de2860e38d77b8fa4422b4757_911x646.png =450x)
###
* 进入Templates 目录,如图所示。
![](https://img.kancloud.cn/65/11/65112ef69b5ce30d278810614984deba_911x646.png =450x)
###
* 添加 system_stm32f0xx.c文件,如图所示。
![](https://img.kancloud.cn/97/08/9708b16a66e0d36de0cda104a8715f8f_911x646.png =450x)
<br/>
* 添加下一个文件,进入arm目录,如图所示。
![](https://img.kancloud.cn/af/a5/afa5b669acf0147b6d5976f14fb87b7f_911x646.png =450x)
###
* 添加 startup_stm32f030.s 文件,如图所示。
![](https://img.kancloud.cn/bc/b8/bcb87e35878008885bfcee24da8bcf3a_911x646.png =450x)
>[warning]在选择文件前,需要按如图所示把文件过滤器更改为Asm Source file(\*.s\*;\*.src;\*.\*.a\*)
###
* 添加完成,如图所示。
![](https://img.kancloud.cn/84/10/8410871a3f3d8b34d9ce4918a1f8ee43_803x603.png =450x)
<br/>
删除 StdPeriph_Driver 下所有文件,如图所示。
![](https://img.kancloud.cn/0b/21/0b21e9f11c7eeda4c9444d5ff88eaee5_803x603.png =500x)
###
删除完成,点击 "OK",如图所示。。
![](https://img.kancloud.cn/1c/b1/1cb15314d7661cc200fbf7c056aaf42c_803x601.png =500x)
<br/>
<br/>
<br/>
## **官方模板工程的配置**
点击魔法棒,如图所示。
![](https://img.kancloud.cn/83/60/8360e75c9ba09eb748bb06aea0939c93_649x329.png =500x)
<br/>
点击Device选项卡,
* 如果使用的是**STM32 Pro主板**,那么选择STM32F0 Series→STM32F0→**STM32F030C8Tx**,然后点击OK,如图所示。
![](https://img.kancloud.cn/1f/de/1fde015d2bddeeec136bb6413cb3b0de_800x604.png =500x)
<br/>
* 如果使用的是**STM32 Std主板**,那么选择STM32F0 Series→STM32F0→**STM32F030F4Px**,然后点击OK,如图所示。
![](https://img.kancloud.cn/57/e2/57e2a7783b5b34413aacf95ce8127327_1186x894.png =500x)
<br/>
切换至 "Output" 选项卡,勾选“Create Hex File”,如图所示。
![](https://img.kancloud.cn/29/4e/294e930ea7bdde78ab3495fc97fb944d_800x603.png =500x)
<br/>
点击C/C++选项卡,在 "C/C++" 选项卡,进行如图所示设置,并且点击OK
![](https://img.kancloud.cn/87/65/87658e87b9469cf8649ef7dd9cb816a2_800x604.png =500x)
###
其中,Define内容:
```
USE_STDPERIPH_DRIVER,STM32F030
```
Include Paths内容:
```
..\;..\Libraries\CMSIS\Include;..\Libraries\CMSIS\Device\ST\STM32F0xx\Include;..\Libraries\STM32F0xx_StdPeriph_Driver\inc;..\Libraries\STM32F0xx_CPAL_Driver\inc
```
###
至此,我们已经移植和配置完成,接下来编译一下模板工程。
<br/>
## **编译模板工程**
点击Rebuild按钮,编译整个工程,如图所示。
![](https://img.kancloud.cn/1c/84/1c8439a35ce73b673a409db7d0e02f8e_641x326.png =500x)
<br/>
如上述操作正确,则编译成功,如图所示。
![](https://img.kancloud.cn/d5/51/d551306c7dea2cc657ff54bce4940e66_936x772.png =500x)
<br/>
<br/>
## **商务合作**
如有以下需求,可扫码添加管理员好友,注明“**商务合作**”
* 项目定制开发,技术范围:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等;
* 入驻平台,成为讲师;
* 接项目赚外快;
* 善学坊官网:[www.sxf-iot.com](https://www.sxf-iot.com/)
![](https://img.kancloud.cn/b7/5a/b75ac8c3da945f20568771f5935c388f_430x430.png =150x)
(非商务合作**勿扰**,此处**非**技术支持)
- 课程简介
- 配套资源下载
- 配套开发套件简介
- 简介
- 硬件组成 & 技术参数
- STM32 Pro 主板 原理图 & PCB图
- STM32 Std 主板 原理图 & PCB图
- 板载设备使用说明
- STM32开发指南
- 1. 搭建开发环境
- 1.1 Keil MDK简介与安装
- 1.2 STM32 Pack 简介与安装
- 1.3 CH34x 驱动简介与安装
- 1.4 ISP 串口下载工具
- 1.5 串口调试工具
- 2. STM32 开发基础
- 2.1 新建工程
- 2.2 实现第1个程序
- 2.3 Hex 文件烧录详解
- 3. 移植官方标准工程模板
- 4. GPIO实验:LED
- 5. 系统延时应用
- 6. GPIO实验:按键
- 7. GPIO中断实验——按键触发实验
- 8. 使用定时器TIM3
- 9. 串口通信实验
- 10. ADC 实验
- 11. OLED显示器实验
- 12. SDK 设计思想
- 13. SDK 架构解析
- 14. 多任务应用实验
- 15. 输入型任务:按键输入实验
- 16. 输入型任务:串口接收实验
- 17. 高精度温湿度传感器实验
- 进阶课程