A01-固件库开发模板

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


Silence-STM v1.0.0

基于固件库开发模板

一、前提准备

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

A01-固件库开发模板_第1张图片

1.1【新建工程】

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

1.2【添加文件】

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

  • Libraries: Template\Libraries\CMSIS
    A01-固件库开发模板_第2张图片

  • Libraries: Template\Librariesr
    A01-固件库开发模板_第3张图片

  • User: main.c

#include "stm32f10x.h"

int main()
{
	
	while(1)
	{
		
	}
}

A01-固件库开发模板_第4张图片


二、新建工程

2.1【新建工程】

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

2.2【组文件夹】

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

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

A01-固件库开发模板_第7张图片
A01-固件库开发模板_第8张图片


三、配置选项

3.1【配置选项】

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

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

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

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

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

  • USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。
    A01-固件库开发模板_第12张图片

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

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

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

3.2【仿真器配置】

A01-固件库开发模板_第14张图片

  • Utilities 选择 Use Debug Driver
    A01-固件库开发模板_第15张图片
    A01-固件库开发模板_第16张图片

3.3【CPU 型号】

A01-固件库开发模板_第17张图片

3.4【常见错误】

A01-固件库开发模板_第18张图片
A01-固件库开发模板_第19张图片

会导致报错的情况案例:

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

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

你可能感兴趣的:(#,③-STE32固件库开发,单片机,stm32,嵌入式硬件)