【STM32学习笔记3】stm32标准库工程模板搭建

发布者:EtherealLove最新更新时间:2024-12-17 来源: jianshu关键字:STM32  标准库  工程模板 手机看文章 扫描二维码
随时随地手机看文章

前言

本系列文章统一围绕STM32F103C8T6最小系统开发板进行记录,如涉及其他开发板将会特别说明。

新建标准库工程目录

工程目录创建

一个标准的stm32库工程目录包含以下内容:


标准stm32库工程目录


其中:

  • Doc:用来存放程序说明的文件,由写程序的人添加

  • Libraries:包含两个子目录CMSIS和FWlib。

    • CMSIS:存放与Cortex-M3内核相关的文件,如STM32的启动文件,内核文件等。

    • FWlib:存放stm32外设驱动文件,包含inc(头文件)和src(源文件)两个子目录。

  • Listing:存放编译器编译时候产生的C/汇编/链接的列表清单。

  • Output:存放编译产生的调试信息、hex 文件、预览信息、封装库等。

  • Project:用于存放工程文件。

  • User:用于存放的main.c、stm32f10x.h 头文件、 stm32f10x_conf.h配置文件、stm32f10x_it.c和stm32f10x_it.h中断函数文件,以及用户编写的驱动文件。

固件库文件移植

CMSIS

在stm32官方固件库中找到下列文件:

STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm

此处应根据开发板型号进行选择,如STM32F103C8T6为中等型号产品,故选择startup_stm32f10x_md.s文件。

STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x

STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport

将上述文件拷贝至CMSIS目录下:

stm32_templateLibrariesCMSIS

FWlib

将stm32外设驱动文件拷贝至FWlib目录下:

STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver

stm32_templateLibrariesFWlib

User

将下列文件拷贝至User目录下:


STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template

stm32_templateUser

至此,标准库工程模板已完成搭建。

标准库工程文件结构



新建工程

在Keil5中新建一个工程,保存在上述Project/目录下。

1.选择设备型号

根据芯片型号选择对应的选项:


芯片型号选择


2. 创建组文件夹并添加文件

点击上方Manage Project items按钮,如图所示创建组文件夹:


创建组文件夹

找到对应文件,并将其添加至对应的文件夹下:

目录名存放的文件添加文件路径
STARTUPstartup_stm32f10x_md.sstm32_templateLibrariesCMSIS
CMSIS与Cortex-M3内核相关的文件stm32_templateLibrariesCMSIS
FWlib系统外设驱动文件(源文件)stm32_templateLibrariesFWlibsrc
USERmain.c,stm32f10x_it.cstm32_templateUser
PERIPH外设驱动文件(如LED、BEEP等外设)暂无
BSP板级支持包驱动文件暂无
DOC工程说明文件stm32_templateDoc

3. “魔法棒”配置

点击“魔法棒”按钮,进行如下配置:


  1. 添加宏定义USE_STDPERIPH_DRIVER
    这里的宏配置对全局生效

    image.png?imageView2/2/w/1000

只有USE_STDPERIPH_DRIVER宏被定义了之后,才会在stm32f10x.h文件中包含stm32f10x_conf.h文件,进而包含系统外设驱动文件的头文件,如下图所示:

stm32f10x.h


stm32f10x_conf.h


  1. 添加头文件路径
    此外,我们还需要在此处将工程所使用到的头文件的绝对路径添加进来,包括用户自己写的头文件:

    image.png?imageView2/2/w/1000


    添加头文件路径

  1. MicroLIB选项

    MicroLIB

  • MicroLIB是KEIL自带的简易库

  • 如使用printf函数,会从串口1输出字符串,直接默认定向到串口1

  • MicroLIB是缺省C库的备选库。它用于必须在极少量内存环境下运行的深层嵌入式应用程序。这些应用程序不在操作系统中运行

  • MicroLIB不会尝试成为符合标准的ISOC库,MicroLIB进行了高度优化以使代码变得很小。它的功能比缺省C库少,并且根本不具备某些ISOC特性。某些库函数的运行速度也比较慢,例如memcpy()

  1. 输出hex可执行文件
    如果需要通过串口ISP方式烧录程序,则需要指定hex可执行文件生成路径为Output文件夹,并勾选“Create HEX File”选项。

    image.png?imageView2/2/w/1000


  2. 添加链接路径
    指定链接路径为Listing文件夹。

    添加链接路径


资源

stm32官方固件库:https://pan.baidu.com/s/1B0tswmMOoqYDUClkc3ZG2g 提取码:9rgh


关键字:STM32  标准库  工程模板 引用地址:【STM32学习笔记3】stm32标准库工程模板搭建

上一篇:【STM32学习笔记1】Cortex-M3与STM32基本概念
下一篇:《嵌入式-STM32开发指南》第一部分 入门篇 -第1章 学嵌入式从STM32开始

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved