Skip to content

使用固件库

相关文件

  1. 初始化汇编文件, startup_stm32f10x_hg.h

image-20230623143340685

设置堆栈指针, 设置PC指针, 初始化中断向量表, 配置系统时钟, 调用C库函数_main最后进入C语言环境

  1. 时钟配置文件

stm32f10x.c: 把外部时钟HSE经过PLL倍频设置为72MHz

  1. 外射相关

stm32f10x.h实现了外射寄存器映射

stm32f10x_xx.c:外设的驱动库函数

stm32f10x_xx.h:外设的初始化结构体, 初始化结构体的成员参数列表, 驱动外设库函数声明

  1. 内核相关

CMSIS-Cortex 微控制器接口标准

core_cm3.h实现内核寄存器映射

core_cm3.c

控制NVIC(嵌套向量中断控制器), SysTick(系统滴答定时器)

misc.h

misc.c

  1. 头文件配置文件

stm32f10x_config.h头文件的头文件

一般包含在stm32f10x.h的最后面

image-20230623171232169

在编译器的宏里面进行定义

  1. 存放中断服务的文件

stm32f10x_it.h

stm32f10x_it.c

中断服务函数可以放在其他地方, 不一定放在这个文件

文件夹分析

image-20230623163949164

第一个是logo

project是工程文件

第四个是评估板例程

  • Project

    • Template工程模板
    • Example使用例程
  • Libraries库文件

    • CMSIS: Cortex-M处理器使用的硬件抽象层,它不依赖于任何特定的厂商。它提供了一个标准化的接口,用于访问Cortex-M微控制器上的硬件外设和功能。
      • CM3
        • CoreSupport: 实现内核外设寄存器
        • DeviceSupport/ST/STM32F10x: 实现相关寄存器映射
          • startup: 初始化文件
      • Documentation: 相关的文档
    • STM32F10x_StdPeriph_Driver标准库函数
      • inc外设相关的头文件
      • src对应的c文件

image-20230623175852701

移植

image-20230623180942600

image-20230623181644670

创建文件夹, 之后在Project文件夹下面添加项目

image-20230623181746511

image-20230623181817522

添加下面几个组

  • 开始复制库文件

image-20230623184014166

多余文件删除

image-20230623184248107

剪切到根目录

image-20230623184325545

image-20230623184444662

之后删除原来的文件夹, 核心文件相同

image-20230623184555310

删除CM3, 把startup中不需要的文件删除, 其他复制到根目录下面

在User目录下面创建mian.c

这时候没有存放中断的文件stm32f10x_it.h以及stm32f10x_config.h

从例程中复制过来\Project\STM32F10x_StdPeriph_Template

image-20230623185202171

  • 回到工程目录

image-20230623190307667

添加c文件

  • 添加头文件

image-20230623190624143

image-20230623190813175

启用头文件中宏定义

image-20230623191229622

image-20230623191253830

image-20230623191403670

image-20230623191455785

image-20230623192001833

使用C语言的库