STM32新建工程

   日期:2021-03-04     浏览:92    评论:0    
核心提示:文章目录1 准备2 建立工程2.1 文件目录2.2 创建工程2.3 添加文件2.4 配置工程  相比51单片机,STM32单片机开发难度相对较高,工程比51单片机也大了不少。许多朋友在学习STM32之初很容易卡建立工程这一步,本文根据自己的经验向大家介绍STM32工程建立的步骤(以KEIL、STM32F1系列为例)。1 准备  开发STM32需要具备以下条件:KEIL MDK版本:下载地址STM32F1 KEIL固件包:下载地址程序下载器(如JLINK,ST-LINK等等)该网址属于外网,

文章目录

  • 1 准备
  • 2 建立工程
    • 2.1 文件目录
    • 2.2 创建工程
    • 2.3 添加文件
    • 2.4 配置工程
      • 2.4.1 添加宏定义
      • 2.4.2 添加头文件路径
  • 3 编译工程

  相比51单片机,STM32单片机开发难度相对较高,工程比51单片机也大了不少。许多朋友在学习STM32之初很容易卡建立工程这一步,本文根据自己的经验向大家介绍STM32工程建立的步骤(以KEIL、STM32F1系列为例)。

STM32F1系列模板:下载地址

1 准备

  开发STM32需要具备以下条件:

  • KEIL MDK版本:下载地址
  • STM32F1 KEIL固件包:下载地址
  • 程序下载器(如JLINK,ST-LINK等等)

该网址属于外网,可以通过迅雷接管下载提高下载速度

2 建立工程

2.1 文件目录

  STM32工程文件相对较多,通过多个文件夹管理不同类型的文件便于工程的管理、移植。下例为我常用的文件目录。

template pro src main hardware core stdlib

template:工程根目录

pro:keil工程存放目录

src:源文件存放目录,一般为.c, .cpp, .h, .s文件

main:主要存放一些用户文件,main.c常存放在这个目录
hardware:存放一些外设的驱动
core:主要存放系统配置文件、启动文件等
stdlib:存放标准库

2.2 创建工程

  • 点击红色箭头指向的选项,选择工程路径为template/pro,输入工程名字
  • 选择芯片型号,示例选择的是STM32F103ZET6(Z代表的是引脚数量,E代表的是芯片内存大小)
  • 遇到该窗口可以直接选择ok,不用进行额外的勾选(也可以在这里进行文件的配置,但我直接使用的是标准库,所以不需要进行这些操作)

2.3 添加文件

  • 接下来就是创建KEIL工程目录了,点击红色箭头指向的方向(该目录最好与文件目录中的src子目录一致)
  • 工程目录创好之后如下(Groups中的内容就是工程目录,第三个框框Files是往目录添加文件)
    这里我省略添加文件的过程,结果如下:
    main文件夹下存放的文件

    core文件夹下存放的文件

    stdlib文件夹下存放的文件


keil里面添加的文件



startup_stm32f10x_hd.s为启动文件,该文件的选取与芯片型号有关主要与如:STM32F103ZET6中的E有关,前面启动文件中的h为大内存产品,一般有l,m,h三种类型的启动文件,分别对应小内存、中等内存、大内存产品。芯片型号中的的E位置的字母排序越靠后内存越大

stdlib这里可以只添加需要的源文件,但一开始不熟悉模块可以全部添加

注:hardware为用户自定义的驱动文件,在使用的时候自行添加进去就可以

2.4 配置工程

  STM32使用了较多的宏,且运行机制较为复杂,所以需要对工程进行配置,前面完成了工程创建,文件添加,接下来需要对工程进行配置。

2.4.1 添加宏定义

首先打开魔法棒

添加宏定义,在红色方框中输入STM32F10X_HD,USE_STDPERIPH_DRIVER
STM32F10X_HD与选择的芯片型号有关,与前面选择的startup_stm32_hd.s相对应。产品容量规格在stm32 datasheet中有说明

该选项也可以填写其他的定义,每个宏定义之间用,隔开,该宏定义对程序所有文件都适用

2.4.2 添加头文件路径

  与上面宏定义添加同一个界面,添加头文件目录包含(只有添加了头文件路径编译器在编译时才能找到头文件,所有需要用到的头文件路径都需要添加)

已添加路径的页面

3 编译工程


红色箭头指向的两个按键都可以编译,第一个箭头指向的是部分编译(只编译修改过的文件),第二个是完全编译(编译工程中所有的的C文件)。建议使用部分编译(速度快)。编译之后输出0 Errors, 0 Warnings表示编译成功(有警告可能不会影响编译结果,有错误一定编译失败)。至此,整个工程就新建完成了,之后在使用过程可以根据自己要求添加模块。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服