学习逻辑

为了达到高效、快速的学习,在学习stm32时,制定的方法是阅读别人的代码,和动手练习代码实验为主。

如果纯看视频,一方面注意力达不到最高效,另一方面在实验测试时同样会遇到很多问题,卡主耽误时间。

所以制定的学习逻辑是:
1.确定想要完成的功能。2.根据功能搜索别人的代码,理解实现逻辑,以及代码具体意义。3.动手实验,完成功能。

实现学习过程辅助:搜索、代码片段理解、精准片段视频。

keil5新建工程模板

  1. 前言
    此工程模板基于STM32F1系列,库函数的工程模板
    先简单了解STM32的命令规则

  2. 开发环境
    keil5、固件器版本V3.5
    库函数文件下载链接
    提取码:cgcg

  3. 在桌面新建文件夹,可取名Template,作为工程的根目录。
    在Template目录下新建子文件夹USER,新建子文件OBJ,新建子文件CORE,新建子文件夹STM32F10x_FWLIB

  4. 打开keil5软件,点击Project,选择第一个新建工程

  5. 选择在桌面新建的Template文件,再选择USER子目录,给工程取名,可以叫Template,点击保存。

  6. 在弹出的界面选择STM32F1的型号,这里我们选择STM32F103ZE
    如果这里没有显示STM32F1的可选序列,需要到官网下载STM32F1系列的包进行安装。

  7. 在弹出的界面选择退出

  8. 现在的文件目录下有keil自动生成的Listings和Objects文件,用来存放编译过程中产生的文件。

  9. 打开固件库文件夹STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver文件目录下,复制inc和src目录,到我们新建的Template文件夹STM32F10x_FWLIB目录下。

  10. 将固件库包里相关的启动文件复制到我们工程目录CORE下
    将文件目录\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的两个文件复制到\Template\CORE下。

  11. 打开文件目录\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm,这个目录下方放的是STM32F10x系列的启动文件,根据容量来选择,大容量的hd,中等容量的md,小容量的ld,这里我们使用hd的,因为我们选择的芯片是STM32F103ZE,512K字节。

    复制选择的文件,到core目录下

  12. 选择\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的选中文件,复制到USER目录下


    选择\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的3个文件,复制到USER目录下。

  13. 打开keil5,选中Target1右击,选择Manage Project Items

    双击可以修改名称,这里修改Target1的名称为Template

    在Groups下也可以双击修改名称,我们修改名称成USER,同时点击上面的小方框可以添加新的Group,我们再添加CORE,FWLIB,点击OK保存。

  14. 右击一个USER,选择Manage Project Items,点击FWLIB,点击右下角添加文件,选择我们之前的目录\Template\STM32F10x_FWLIB\src下所有文件,ctrl+A 可以全部选中,点击add,最后点击close。


    同样的方法,点击USER,点击add files,选择USER目录下的这两个文件,点击add,再点击close。

    最后点击CORE,点击add files,注意这里下拉我们选择所有类型的文件,最后将图片上选择的两个文件添加,别忘了点击add。


    添加完之后我们可以看到,这里的下拉菜单是有文件的

  15. 点击小魔术棒,在Output下勾选Create HEX File文件,这个是我们后面会用到它仿真。
    另外点击select Folder Objects,默认情况下是定义到Object的,这里我们定义到自己建的OBJ文件中。注意保存。

  16. 再次点击魔术棒,在下面的include paths框后面,点击… 选择文件,右上角小方框添加文件路径,分别是我们Template目录下的USER,CORE,还有STM32F10x_FWLIB下的inc目录。点击OK。

  17. 配置一个全局的宏定义变量,还是小魔术棒里,将STM32F10X_HD,USE_STDPERIPH_DRIVER写在Define中,注意中间的是英文状态的逗号,点击保存。

  18. 点击USER,右击添加main.c文件

  19. 在main.c中输入以下代码

#include "stm32f10x.h"int main()
{}


点击编译按钮,我们可以看到没有错误

至此,我们的模板就创建完成了。

测试

  1. 这里我们再用一个简单的LED代码测试,在USER下新建led.c,led.h。


  2. 编译通过

参考文档

  • stm32F10x系列参考手册中文,参照2009年12月 RM0008 Reference Manual 英文第10版
  • 正点原子STM32F103开发版资料-入门篇视频-第十讲-新建工程模板

Keil5新建STM32工程模板相关推荐

  1. Keil5新建stm32工程

    Keil5新建stm32工程1 文章目录 Keil5新建stm32工程[^1] 1. 新建一个工程,搭建框架 2. 向框架里面注入官方的固件库里的源码文件 3. 将注入的文件加入工程 4. 设置编译输 ...

  2. Keil5新建STM32工程(二)

    接下来将会讲到如何在keil5加入我们新建好的文件... 一起来看看吧~~~ 1.首先我们打开keil5软件并新建工程 然后选择之前我们在电脑新建好的文件夹,放到Project文件夹里边 文件名需要重 ...

  3. STM32F103标准库开发:Keil5新建STM32工程

    STM32标准库版工程模板链接 STM32F103标准库开发-目录 首先需要搭建Keil5编译环境,才可以新建STM32工程. Keil5编译环境搭建流程----STM32和GD32 新建STM32工 ...

  4. keil5新建STM32工程文件--实践篇手把手教学(以STM32F103为例)

    目录 一.文件与文件夹创建 1.1 CMSIS文件夹创建 1.2 FWLIB文件夹创建 1.3 Project文件夹创建 1.4 startup文件夹创建 1.5 user文件夹创建 1.6 read ...

  5. 正点原子STM32F103ZET6学习笔记-新建库函数工程模板

    STM32F10x系列官方固件包免费下载链接 新建STM32工程 步骤一:创建工程文件 1,新建工程目录temp 2,在工程目录temp下面新建四个文件夹 (1)USER:存放工程文件(templat ...

  6. MDK Keil5创建stm32工程出现 Error: L6200E: Symbol HAL_MspDeInit multiply defined

    MDK Keil5创建stm32工程出现 -\OBJ\Template.axf: Error: L6200E: Symbol HAL_MspDeInit multiply defined(bystm3 ...

  7. keil5编写stm32代码:提示single-precision operand implicity converted to double-precesion

    使用keil5编写stm32代码,编译提示single-precision operand implicity converted to double-precesion,意思是单精度运算隐式转换成双 ...

  8. Keil5新建GD32裸机程序工程模板

    新建Keil5工程(以GD32C013CB为例) 文件目录 当管理一个工程时,需要将工程中的各种文件分类组织保存好,所以需要在新建工程时提前新建好文件夹,如下图: Docs:该文件夹用于保存该工程所需 ...

  9. KEIL5创建新工程模板 以及文件简介概述

    STM32中文参考手册 第三章 MDK5软件入门 1.介绍MDK5软件的使用 2.ST官方固件库介绍 3.介绍怎样建立一个基于STM32官方固件库的工程模板 固件库就是函数的集合,固件库的作用就是向下 ...

最新文章

  1. (转)搭建企业内部yum仓库(centos6+centos7+epel源)
  2. proxmox 之 与openstack的比较
  3. boost::mp11::mp_invoke_q相关用法的测试程序
  4. P4336-[SHOI2016]黑暗前的幻想乡【矩阵树定理,容斥】
  5. #敏捷个人# 每日认识101(15):成为一个有执行力的人
  6. 【编译原理笔记14】中间代码生成:布尔表达式的回填,控制流语句的回填,switch语句的翻译,过程调用语句的翻译
  7. ssm+教务信息管理 毕业设计-附源码161124
  8. C语言循环语句的用法——while循环
  9. MIUI 10 已连接 但无法访问互联网 的解决方案
  10. 送书6本,看谁答题快
  11. 第3-4课:爱因斯坦的思考题(上)
  12. VC++:菜单的使用总结
  13. 浅谈CAS,一篇就够了
  14. 名字作诗,让你的名片更具有趣味性和个性化
  15. PyCharm中文版(无需汉化包,一键设置)
  16. 【最终幻想15 国王之剑】制作介绍1:不再是游戏动画,而是“电影”制作
  17. element-ui表格求和求平均数
  18. python中判断一个数是否为素数_【转载】Python脚本判断一个数是否为素数的几种方法...
  19. 主板电源开关接口图解_电脑主板上的电源开关插头怎么接啊
  20. vue3 setup 语法糖的项目实战用法

热门文章

  1. 电网质量-谐波的基本概念
  2. NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比
  3. 去除winrar的弹窗广告
  4. 暨南大学计算机考研大纲,2021暨南大学考研大纲参考书目汇总
  5. 修复win10的更新服务器,修复win10系统更新steam发生错误提示“无法连接服务器”的教程步骤...
  6. 系统给定外部整型变量ndsum和整型二维数组a (不需要自行定义)。编写程序,求n*n二维数组a的主对角线元素之和dsum。...
  7. 架构制图--工具与方法论
  8. 怎么用matlab画黑体辐射图像,matlab_黑体辐射规律的研究.doc
  9. OM1、OM2、OM3、OM4、OM5 和 OS1、OS2 光纤
  10. Qt将【十六进制的字符串】与【原数据字符串】互转