学习逻辑

为了达到高效、快速的学习,在学习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开发版资料-入门篇视频-第十讲-新建工程模板
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐