> 文章列表 > A01-固件库开发模板

A01-固件库开发模板

A01-固件库开发模板

🧑‍🎓 个人主页Silence Lamb
📖 本章内容:【固件库开发模板


Silence-STM v1.0.0

基于固件库开发模板

一、前提准备

  • 🚀从ST官网获取stm32f103标准例程固件库
  • 🚀 参考文档

A01-固件库开发模板

1.1🌳【新建工程】

  • 🌳为了工程目录更加清晰,我们在本地新建一个“工程模板”文件夹
  • 🌳在它之下再新建 6 个文件夹,具体如下
名称 作用
Doc 用来存放程序说明的文件,由写程序的人添加
Libraries 存放的是库文件
Listing 存放编译器编译时候产生的 C、 汇编 、链接的列表清单
Output 存放编译产生的调试信息、hex 文件、预览信息、封装库等
Project 用来存放工程
User 用户编写的驱动文件

1.2🌳【添加文件】

  • 🌳在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下:

  • 🌳Libraries: Template\\Libraries\\CMSIS
    A01-固件库开发模板

  • 🌳Libraries: Template\\Librariesr
    A01-固件库开发模板

  • 🌳User: main.c

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

A01-固件库开发模板


二、新建工程

2.1🍑【新建工程】

  • 🍑新建工程:Template(中文是模版的意思),保存在 ProjectRVMDK(uv5)文件夹下
    A01-固件库开发模板
  • 🍑 选择 CPU 型号:这个根据你开发板使用的 CPU 具体的型号来选择
    A01-固件库开发模板

2.2🍑【组文件夹】

🍑在新建的工程中添加 5 个组文件夹

  • 用来存放各种不同的文件,文件从本地建好的工程文件夹下获取
  • 双击组文件夹就会出现添加文件的路径,然后选择文件即可

A01-固件库开发模板
A01-固件库开发模板


三、配置选项

3.1🍑【配置选项】

  • 🍑Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用 printf 函数
    A01-固件库开发模板

  • 🍑 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹

  • 🍑如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上
    A01-固件库开发模板

  • 🍑 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹
    A01-固件库开发模板

  • 🍑STM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是 STM32 型号是大容量的,使 STM32 标准库根据我们选定的芯片型号来配置

  • 🍑 USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。
    A01-固件库开发模板

  • 🍑在 C/C++ 选项卡中添加处理宏及编译器编译的时候查找的头文件路径

  • 🍑如果头文件路径添加有误,则编译的时候会报错找不到头文件
    A01-固件库开发模板

  • Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这
    里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可

3.2🍑【仿真器配置】

A01-固件库开发模板

  • 🍑Utilities 选择 Use Debug Driver
    A01-固件库开发模板
    A01-固件库开发模板

3.3🍑【CPU 型号】

A01-固件库开发模板

3.4🍑【常见错误】

A01-固件库开发模板
A01-固件库开发模板

会导致报错的情况案例:

  • 1、启动文件为startup_stm32f10x_md.s,C/C++的Define为 STM32F10X_HD,会报错 因为头文件定义与启动文件不一致

  • 2、启动文件为startup_stm32f10x_md.sC/C++的Define为 STM32F10X_MD,驱动(Device)选择STM32F103ZE,会报错 因为STM32F103ZE系列芯片属于大容量芯片,而MD属于中容量芯片驱动文件 -