1、新建工程

首先需要获取STM32的固件包。
固件库包获取以后就正式进入工程模板的创建,在电脑任意位置创建一个文件夹,命名为“库函数模板创建”,然后在其下面新建3 个文件夹,如下:

Obj 文件夹:用于存放编译产生的c/汇编/链接的列表清单、调试信息、hex文件、预览信息、封装库等文件。User 文件夹: 用于存放用户编写的main.c 、stm32f10x.h 头文件、stm32f10x_conf.h 配置文件、stm32f10x_it.c 和stm32f10x_it.h 中断函数文件。Libraries 文件夹:用于存放CMSIS 标准和STM32 外设驱动文件。

在Libraries 文件夹下新建2 个文件夹分别命名为CMSIS 和STM32F10x_StdPeriph_Driver,其实这些文件夹命名都是直接复制固件库相应的文件夹名,如下:

CMSIS 文件夹用于存放一些CMSIS 标准文件和启动文件;
STM32F10x_StdPeriph_Driver 文件夹用于存放STM32 外设驱动文件。

这里面只抽取工程模板CMSIS 所需的几个文件出来,如下:

STM32F10x_StdPeriph_Driver 文件夹内文件如下:

src 目录存放的是外设驱动的源文件,inc目录存放的是对应的头文件。如下:

User 文件夹内文件如下:

到这里就已经将创建库函数模板所需的固件库文件复制过来了,下一步打开
KEIL5 软件,新建一个工程,工程名根据喜好命名,但是要注意使用英文,如果
使用中文名可能会出现一些奇怪的错误,这里我们命名为Template,直接保存
在最开始创建的“库函数模板创建”文件夹。

2、选择CPU

这个根据开发板使用的CPU 具体的型号来选择,普中PZ6806L 开发板采用的是STM32F103ZET6 芯片。如果这里没有出现你想要的CPU 型号,或者一个型号都没有,那么肯定是你在安装KEIL5 软件的时候没有添加芯片包,KEIL5不像KEIL4 那样自带了很多MCU 的型号,KEIL5 需要自己添加。

选择完CPU 点击OK 后会弹出在线添加固件库文件的界面,如下:

这里手动进行添加,不需要此步,所以直接关闭即可。

3、给工程添加文件

在新建的工程中添加文件,文件从“库函数模板创建”文件夹下获取,双击Group 文件夹就会出现添加文件的路径,然后选择文件即可。如果我们将“库函数模板创建”目录下的文件都添加到Group 这个默认组中,显然是非常乱的,对于我们查找工程文件和工程维护极其不方便。因此需要根据文件类型来构建新的工程组。

为了工程目录更加清晰及方便文件查找,新建User、Startup、StdPeriph_Driver 和CMSIS 工程组。

User 组用于存放User 文件夹下的源文件Startup 组用于存放STM32 的启动文件StdPeriph_Driver 组用于存放STM32 外设的驱动源文件、CMSIS 组用于存放CMSIS 标准文件,比如系统总线时钟等初始化源文件。

将对应的一些文件添加到工程目录组中,这样才能进行程序的
开发。添加工程文件步骤如下:

点击图标1,弹出界面后,在图标2 中选择好要添加的工程组,点击图标3 添加文件,会弹出添加文件对话框,在图标4 中选择对应文件夹内的文件,注意图标5 中文件类型的选择,默认是.c 文件,在Startup 工程组中我们需要添加STM32的启动文件,而启动文件类型是.s,所以要将文件类型选择为“All files(.)”
才能看到,点击图标6 即可添加,将所有文件添加至对应工程组后,如下所示:

4、配置魔术棒选项卡

(1)Target 中选中微库“Use MicroLib”,主要是为了后面printf 重定向输出使用,不然会出现各种奇怪的现象。其他的设置保持默认即可,配置如下:

(2)Output 选项卡中把输出文件夹定位到我们工程目录下的Obj 文件夹,如果想在编译的过程中生成hex 文件,那么Create HEX File 选项勾上。配置如下:

(3)Listing 选项卡中把输出文件夹也定位到我们工程目录下的Obj 文件夹。其他设置默认,配置如下:

(4)C/C++选项卡配置因为创建的是库函数模板,所以需要在对处理器类型和库进行宏定义,在Define 这一栏中复制这两个宏: USE_STDPERIPH_DRIVER,STM32F10X_HD

设置好了宏,还需要将前面添加到工程组中的文件路径包括进来,同样
还是在C/C++选项卡中,具体步骤如下:

首先点击图标1,弹出一个添加头文件路径的对话框,然后点击图标2,新建一个空路径列表,再点击图标3,会弹出浏览文件夹对话框,在图标4 中选择对应的头文件路径即可,这个头文件路径就是你工程组中那些文件的头文件路径,选择好后点击图标5 确定,然后回到图标2 重新建立一个空路径列表,再次
添加路径,直到所有头文件路径添加完成点击图标6 即可。

最后添加好的头文件路径如下:

5、框架搭建

编译一下工程,编译后结果0 错误0 警告,表明我们创建的库函数模板完全正确。

至此,库函数模板创建完毕!

STM32库函数模板创建相关推荐

  1. 1.STM32F427llHX(大疆A板) 模板创建(库函数版本)

    本文从正点原子stm32f407例程(库函数)修改移植至stm32f427, 正点原子stm32f407例程链接 提取码:1234 新建文件夹 新建一个文件夹,后面所建立的工程都可以放在这个文件夹下面 ...

  2. vs code vue模板创建

    摆图 其他模板创建,依照此法即可. 转载于:https://blog.51cto.com/11mihu/1926917

  3. 超图桌面版使用模板创建数据源

    新建一个文件型数据源test1; 新创建完是空的:文件数据源菜单下拉,基于模板创建数据源: 选择数据源模板,国情普查:这是一套系统预定义的模板: 创建: 根据模板创建的数据源,数据集结构会被继承过来: ...

  4. 03_Weblogic之配置简单域:启动和配置域,使用模板创建域,使用控制台

     1 域:概览 是Oracle Weblogic Server的基本管理单元 始终包含一个配置为管理服务器的Oracle WebLogic Server实例 域中可以包括一些称为受管服务器的Ora ...

  5. docker镜像了解(建立私有仓库,基于已有镜像创建,Docker的数据管理) 基于Dockerfile创建,基于本地模板创建,端口映射,容器互联)

    文章目录 docker镜像 制作镜像的过程 基于已有镜像创建 基于本地模板创建 基于Dockerfile创建 Dockerfile操作指令 Docker的数据管理 数据卷 docker的网络通信 容器 ...

  6. STM32——库函数开发小结

    STM32--库函数开发小结 宗旨:技术的学习是有限的,分享的精神是无限的. 基本上所有外设都有以下几类寄存器:[CR/DR/SR] (1)控制寄存器 xxx_CR(Control/Configura ...

  7. linux虚拟机模板部署模板,创建和部署基于 Linux 的虚拟机模板

    适用于: System Center 2012 SP1 - Virtual Machine Manager 通过使用 Virtual Machine Manager (VMM) 中 System Ce ...

  8. 【5】天猫精灵开放平台实验—基于天气查询模板创建开发屏显页面技能

    文章目录 天猫精灵开放平台实验-基于模板创建开发屏显页面技能 一.前提准备 二.登录天猫精灵开放平台 (一)创建新技能 1.创建语音技能 2.填写基本信息 (二)创建后端服务 1.创建后端服务 2.关 ...

  9. CDR插件开发之Addon插件008 - 在VS中下载安装Addons插件模板并基于模板创建Addon插件工程

    本文介绍了Addons插件模板的由来,演示如何在VS 2022中安装Addon插件模板(扩展),并基于Addons模板创建CDR插件工程,演示了在CDR 2020中加载和运行自己创建的Addon插件. ...

  10. Java 使用word模板创建word文档报告教程

    上面是java 利用word模板生成的一个word报告文档,利用的是第三方类库Poi-tl 是实现的. poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你 ...

最新文章

  1. python字符串类库_Python 常用类库
  2. C++知识点42——下标运算符[]的重载及string类的实现
  3. 44.作用域,局部和全局变量
  4. c#根据年份和月份获得本月最后一天
  5. BZOJ4855 : [Jsoi2016]轻重路径
  6. 运用Zabbix实现内网服务器状态及局域网状况监控(2) —— 环境配置
  7. 没有什么多模态任务是一层Transformer解决不了的!
  8. 如何玩转 WebGL 并行计算
  9. (10)js操作符(运算符)
  10. 一季度平板电脑市场:苹果稳居第一,华为第二!
  11. 这个黑科技耳机方便又时尚,听歌也不怕坐过
  12. 让apache支持ssl
  13. 如何使用CodeBlocks开发C/C++程序
  14. ubuntu10下Eclipse中无法输入中文
  15. 13-微信小程序商城 产品简介布局(微信小程序商城开发、小程序毕业设计、小程序源代码)(黄菊华-微信小程序开发教程)
  16. html购物网页代码大全,HTML常用代码大全
  17. 《⑨也懂系列:MinGW安装教程Ver.2》著名C/C++编译器GCC的Windows版本
  18. qlv格式怎么打开,把qlv格式转换成mp4的方法
  19. 安全月报| PeckShield:9月共发生安全事件14起,损失近1,800万美元
  20. 【12c】12c RMAN新特性之UNTIL AVAILABLE REDO--自动恢复到REDO终点的步骤简化

热门文章

  1. 程序员文档写作能力(三)-如何处理好微信、邮件、开会时的话术
  2. 基于openpose的人体姿态识别部署详细过程
  3. AMS1117-3.3的电路分析
  4. windows环境下curl 安装和使用
  5. 心脏除颤器的工作原理
  6. 【数字图像处理】直方图规定化(含实现代码)
  7. [RK3399][Android7.1] 移植笔记 --- 音频Codec RT5640添加
  8. matlab uicontrol 居中,在uicontrol属性中position设置问题?
  9. 抢红包算法 c++_【优化求解】基于粒子群算法的光伏电池MPPT控制策略
  10. C51单片机LCD1602驱动程序