STM32f10x标准库工程搭建


前言

你需要有一台电脑,其次需要安装keil5并配置好相应的环境,还需要安装f10x系列的芯片包,最好有一块stm32f103c8t6最小系统板。你只需跟着本文一遍就能搭建好工程

一、创建工程目录

在创建工程目录前你需要在

STSW-STM32054 - STM32F10x标准外设库 - 意法半导体STMicroelectronics

ST官网中下载固件库

也可以从下面这个链接获取

链接:https://pan.baidu.com/s/1gPC4QF_P8fdLC7GwQA33qg?pwd=8lrz 
提取码:8lrz

获取后将其解压即可。

1.创建工程

你需要创建如下6个文件

CORE:该文件通常包含与STM32微控制器核心相关的文件,这对于微控制器的启动和运行至关重要

HARDWARE:存放与硬件相关的代码,这些代码可能包括用于链接芯片与其他外部设备的驱动

OBJ:用于存放编译过程中产生的中间文件

STM32F10x_FWLib:该文件包含微控制器的外设驱动程序,系统服务函数以及其他必要的库函数

SYSTEM:包含一系列用于系统初始化和配置的源代码文件(用户编写的代码)

USER:主要用于存放用户编写的源代码,通常包含主函数main,c、系统初始化文件system_stm32f10x.c等以及其他用户自定义的源代码

2.固件库移植

创建好上面的文件后就开始将固件库移植到其中

只需要移植三个主要的文件

(1)CORE

首先将解压后的固件库

...\en.stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport路径下的

core_cm3.c

core_cm3.h

复制到CORE

再将...\en.stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm路径下的

startup_stm32f10x_md.s

复制到CORE

该路径下的文件是芯片容量大小的文件,可以去ST官网自己查询

(2)STM32F10x_FWLib

完成后再将...\en.stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver路径下的

src文件

inc文件

复制到STM32F10x_FWLib文件中

(3)USER

最后将...\en.stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template路径下的

main.c

stm32f10x_conf.h

stm32f10x_it.c

stm32f10x_it.h

system_stm32f10x.c

5个文件复制到USER

再将...\en.stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x路径下的

stm32f10x.h

system_stm32f10x.h

复制到USER

至此就将固件库移植到了工程中

二、新建Keil工程

1.打开keil

2.点击Project---->New μVison Project...

3.选择路径为...\STM32工程\USER

我这里的文件名是SmartHome

4.选择芯片

直接在Search中搜索自己开发板的芯片,我用的是stm32f103c8t6最小系统板

点击OK,随后会弹出弹窗,直接Cancel(关闭)

三、创建Groups

1.打开keil右击Target1--->Manage Project Items...

2.点击Groups后面的虚线方框(New(insert))创建USERCORESTM32F10x_FWLib

3.将工程中对应的文件添加到分组中

(1)将工程文件中USER下的

main.c

stm32f10x_it.c

system_stm32f10x.c

3个文件添加到USER分组

(2)将工程文件CORE中的

core_cm3.c

startup_stm32f10x_md.s

2文件添加到CORE分组

(3)最后将STM32F10x_FWLib下src中

所有(共23个)文件

添加到STM32F10x_FWLib分组

4.完成后点击OK

四、设置头文件路径

1.头文件目录路径设置

点击Options for Target...(魔术棒)--->c/c++--->include Paths

添加完成如下

2.编译

在编译之前需要将main.c中的内容替换为以下代码

#include "stm32f10x.h"


int main(void)
{

}

这个时候就可以编译了

编译完发现报错如下

大概意思是assert_param没被定义

追根究底是没有定义宏USE_STDPERIPH_DRIVER

解决方法:

在C/C++中定义USE_STDPERIPH_DRIVER

这个时候再编译,0报错、0警告

3.设置输出文件位置

双击OBJ,然后点击OK

五、点亮LED

main.c函数代码如下

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"

void LED_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能C端口时钟
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;	 
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
 	GPIO_Init(GPIOC, &GPIO_InitStructure);	  //初始化GPIOC
 	GPIO_SetBits(GPIOC,GPIO_Pin_13);
}

int main(void)
{
	LED_Init();
	GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);//拉低,点亮LED
  while (1)
  {
  }
}

你还需要设置下载器如下

最后编译下载

结果如下

LED成功点亮


总结

创建工程的大概流程就是创建6个文件分别是USER、CORE、STM32F10x_FWLib、HARDWAER、SYSTEM、OBJ

随后就是固件库移植

最后就是创建keil工程,创建分组,添加工程文件,设置头文件目录

你会发现HARDWARE、SYSTEM没有用到,不过不要急,会用到的,这叫未雨绸缪

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值