第8章 库函数模板创建

2024/11/04 STM32
第8章 库函数模板创建

一、固件库的获取

  1. ST官网获取:https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries/stsw-stm32054.html
  2. 找作者要资料

二、创建库函数工程

  1. 工程文件夹中要包含User、Obj、Libraries
  2. User: 存放用户文件、包括main、main.c、STM32的一个头文件、配置文件、中断文件等
  3. Obj: 编译器产生的一些中间文件,如汇编链接的一些链表文件、调试信息、Hex文件(使用串口下载程序的时候,要定位到Obj文件夹下的Hex文件,烧写到芯片当中进行运行)
  4. Libraries: STM32库文件,包括CMSIS的一些外设库文件都放在这个文件夹下

Libraries文件夹

  1. Libraries文件夹包含:CMSIS、STM32F10x_StdPeriph_Driver(外设驱动文件夹)
  2. CMSIS: 用来存放CMSIS标准的一些文件、启动文件 CMSIS里面要存放M3内核通用文件

pADhtt1.png 系统初始化文件及其头文件

pADhDne.png 启动文件 hd.s:代表STM3210系列高容量的芯片使用的启动文件(ZET6) md.s:中等容量(VCT6、VET6等) ld.s:低容量(C8T6)

pADhIBQ.png

  1. STM32F10x_StdPeriph_Driver文件夹:存放外设驱动文件

pAD4mHH.png 官方提供的里面有src和inc,src是源文件,inc是与源文件对应的头文件,将两个文件夹直接复制进去

User文件夹

头文件

pAD4rvT.png 中断文件、配置文件、main.c文件

pAD4526.png

Obj文件夹

需要在Keil环境设置时将它的一些中间文件生成路径定位到Obj文件夹下

三、新建工程

  1. 打开Keil软件

pA0itcF.png

  1. 新建工程 命名不要使用中文或特殊符号,要使用英文

pAD4xRP.png

  • 选择好型号(选择自己使用的型号),点击OK

pA0igje.png

  • 弹出的窗口是一些运行环境,不需要管,点击取消

pA0iRnH.png

  • 这样工程已经添加好,工程名称也已经定义了,这个是一个工程文件,以后打开文件打开这个即可

pAD59sS.png Temptlate是刚才新建的工程文件名,之后打开工程直接双击文件即可

  1. 加载需要的文件
    • 方法一:

pA0ixNq.png

  • 方法二:双击Sourse,定位到User文件夹,进行添加
  • 方法三:点击上方管理项目文件

pA0AbjO.png

  1. 重新命名工程组(添加目录) 里面有User、Startup(启动文件)、CMSIS(存放CMSIS标准的文件:M3的内核文件、SystemInit初始化时钟文件)、StdPeriph_Drivre(标准外设驱动文件) pArVKCd.png

  2. 文件添加 User文件添加 pArVM8A.png Startup(启动文件)文件添加 pArVQgI.png CMSIS文件添加 pArVlvt.png StdPeriph_Drivre文件添加 只需要添加源文件,直接包含头文件的路径就ok,根据我们指示的路径自动调用它的头文件,就不需要添加头文件了。 编译的时候,所有的源文件都要编译一遍,使用工程的时候不一定需要全部的外设,为了使工程更加的精简,所以需要哪个外设添加哪个外设的文件进来,不需要全添加,全添加会占用电脑的内存 简单外设添加举例 pArV3KP.png

三、工程配置

配置魔术棒

  1. 勾选Use MicroLIB:在后面使用串口通信、串口重定向的时候,会使用到一个printf的输出函数,这个输出函数是需要这个的支持的

pA0e4sK.png

  1. 勾选创建Hex文件,Hex文件是我们使用串口下载的时候要将生成的.hex文件烧写到芯片当中运行我们的程序

pA0eoZD.png

  1. 在输出选项卡有一个Objectskeil5默认给我们创建了,但是我们希望都存放到Obj文件夹中,需要进行路径的重新定义

pA0eTde.png

  1. 还需要把Listing下生成的文件也存放到Obj下

pA0e7IH.png

  1. C/C++中,需要对处理器类型和库进行宏定义,在Define这里需要配置两个宏,这两个宏是全局的宏,在整个工程中都会应用到的,当宏定义了,有些程序才可以使用 全局宏:USE_STDPERIPH_DRIVER,STM32F10X_HD

pAspqf0.png 注意逗号是英文逗号,逗号左边是使用标准外设驱动文件,外设驱动文件会通过这个宏来使能一些东西。逗号右边是芯片类型(高容量),是用来区分芯片的容量

  1. 添加头文件路径

pAs9D3V.png

  1. 通过Debug配置ARM仿真器(接下来需要根据自己选择的仿真器进行配置,下面皆为作者教程),配置好以后可以通过仿真器给开发板下载程序,在线调试等都可以使用
    • 如果选择SW模式,前面要打勾

pA0ebid.png

  1. 接下来在这个界面点击Flash Download(用于添加芯片烧写算法)进行配置,当选择芯片类型正确之后默认会出来,如果没有①,则需要进行手动添加,记得勾选复位并运行(程序下载之后会自动运行)

pA0eqJA.png

  1. 编译之后Obj文件夹中就会生成很多文件,这就是系统生成的文件
  2. ObjectsListing文件夹删除即可,这两个文件夹已经没有作用了

文档信息

搜索

    Table of Contents