我们眼中的固件库应该是什么样子
-
汇编编写的启动文件:
startup_stm32f10x_hd.s:设置堆栈指针,设置PC指针,初始化中断向量表,配置系统时钟,调用C库函数_main 最终去到C的世界
-
时钟配置文件
system_stm32f10x.c:把外部时钟HSE=8M,经过PLL(锁相环)陪频为72M
-
外设相关:
stm32f10x.h:实现了内核之外的寄存器映射
xx:表示GPIO,USART,I2C,SPI,FSMC
stm32f10x_xx.c:外设的驱动函数库文件
stm32f10x_xx.h:外设的初始化结构体,外设初始化结构体成员的参数列表,外设固件库函数的声明
-
内核相关的软件 CMSIS -Cortex 微控制器软件接口标准
core_cm3.h:实现了内核里面外设的寄存器映射
core_cm3.c
NVIC(嵌套向量中断控制器) SysTick(系统嘀嗒定时器)
misc.h misc.c
-
头文件的配置文件
stm32f10x_conf.h:头文件的头文件
所有外设的头文件都包含在这里,默认是注释掉的,想用打开即可
-
专门存放中断服务函数的c文件
stm32f10x_it.c
stm32f10_it.h
中断服务函数可以随意放在其他地方,并不是一定要放在stm32f10x_it.c
stm32 固件库
学习如何通过固件库查看函数
使用固件库编程
新建项目
- 新建项目文件夹
- 项目文件夹内新建其他文件夹(Listing和Output Keil自动生成)
自己写的代码都放在User这里
3. 把官方库Libraries中的CMSIS文件夹里的文件可以优化一下,将CMSIS和芯片库粘贴进新建的Libraries文件夹中
arm文件夹中内容放到startup目录中,startup目录中其他文件夹可以删掉
- 在USER文件夹中建立main.c
- 在USER中添加中断和配置等文件,可以从官方库的例程中添加
- 在Keil中添加之前新建好的内容(外设库的内容添加src中“全选”)
- 配置Keil使用的头文件路径
-
进行相关宏定义
关于“stm32f10x_conf.h”的 关于定义不同芯片类型的宏
9.在魔术棒-Device 中选定芯片类型,魔术棒-Target 选择使用 microlib,魔术棒-Output 中勾选 HEX和Browse Information
10.可以配置keil垃圾清除的脚本