STM32F1 系列标准库压缩包文件:STM32F10x_StdPeriph_Lib_V3.5.0

# 新建工程步骤总结

  • 建立工程文件夹,Keil 中新建工程,选择型号
  • 工程文件夹里建立 Start、Library、User 等文件夹,复制固件库里面的文件到工程文件夹
  • 工程里对应建立 Start、Library、User 等同名称的分组,然后将文件夹内的文件添加到工程分组里
  • 工程选项,C/C++,Include Paths 内声明所有包含头文件的文件夹
  • 工程选项,C/C++,Define 内定义 USE_STDPERIPH_DRIVER
  • 工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download 里勾选 Reset and Run

# 启动文件

位置: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

将 8 个启动文件全部放到自己工程的 Start 文件夹下(新建)

image

# 外设描述文件和时钟配置文件

位置: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

image

同样也是将这三个文件复制到自己工程的 Start 文件夹下

# 内核寄存器描述文件

位置: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

image

同样也是将这两个文件复制到自己工程的 Start 文件夹下

# 配置 Keil

# 添加 Start

修改组名,将特定启动文件、外设描述文件和时钟配置文件、内核寄存器描述文件添加进组里

image

图标上带有小钥匙表明是个只读文件

# 配置头文件路径

image

# 配置编码格式

image

# 自动代码补全

image

# 配置标准库

位置: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src

image 共 23 个文件,其中 misc.c 是内核的库函数,其他的就是内核外的外设库函数

将全部文件复制到自己工程的 Library 文件夹下(新建)

同理,将 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc ​ 位置下的头文件也复制到自己工程的 Library 文件夹下

同理,将 Library 文件夹下加进来的 46 个文件添加到 Keil 工程新建 Library 组里

除此之外,还需要将 STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template ​ 位置下的 stm32f10x_conf.h ​、 stm32f10x_it.c ​、 stm32f10x_it.h ​ 三个文件复制到自己工程的 User 文件夹下(新建)

同理,将自己工程的 User 文件夹添加到 Keil 工程新建 User 组里

# 设置宏编译

在 User 组下创建 main.c 文件,第一行添加 #include "stm32f10x.h" ​,然后编译,编译后就可以跳转到 stm32f10x.h ​ 文件里了,在文件的底部可以看到宏判断

image

所以需要在工程配置里添加这个宏,下面的 User ​和 Library ​目录也不要忘记添加到 Include Paths ​,即可完成使用标准库的配置

image

image

# 测试代码

#include "stm32f10x.h"                  // Device header
int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
	GPIO_SetBits(GPIOC, GPIO_Pin_13);
	//GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	while (1)
	{
	}
}

# 启动文件选择讲解

从表中可以看出我们的 STM32F103C8T6 因为是 64 的 Flash,所以选择 MD 的启动文件

缩写释义Flash 容量型号
LD_VL小容量产品超值系列16~32KSTM32F100
MD_VL中容量产品超值系列64~128KSTM32F100
HD_VL大容量产品超值系列256~512KSTM32F100
LD小容量产品16~32KSTM32F101/102/103
MD中容量产品64~128KSTM32F101/102/103
HD大容量产品256~512KSTM32F101/102/103
XL加大容量产品大于 512KSTM32F101/102/103
CL互联型产品-STM32F105/107

# 工程架构讲解

image

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

宇凌喵 微信支付

微信支付

宇凌喵 支付宝

支付宝