STM32单片机学习1--库搭建

本文详细介绍如何在Keil5环境下为STM32F103C8T6单片机搭建固件库,包括下载固件库、新建工程、移植库文件、配置工程及Keil设置等步骤,最后通过点亮LED灯验证库搭建成功。

一、前言

单片机型号:STM32F103C8T6
开发环境:Keil5

在这里插入图片描述

二、搭建库步骤

2.1、下载固件库

库文件名STM32F10x_StdPeriph_Lib_V3.5.0

方式1:去ST社区下载:ST社区
在这里插入图片描述
方式2:百度网盘分享:提取码:mm3e

下载下来的固件库结构如下图所示:
在这里插入图片描述

2.2、新建工程文件夹及工程

在桌面新建一个文件夹,名字任意,我将其命名为Fwlib-templete(固件库模板),然后在此文件夹中新建如下几个文件夹
在这里插入图片描述
然后打开Keil5,新建工程->新建工程(选择刚刚在桌面新建的Fwlib-templete文件夹下的Project)
在这里插入图片描述
然后会弹出如下窗体,让我们选择芯片型号
在这里插入图片描述
根据自己的单片机型号进行选择,在此选择STM32F103C8
注意:Keil5默认是没有STMicroelectronics这个包的,这个需要我们自己手动下载安装
Keil官网下载链接: http://www.keil.com/dd2/pack/
在这里插入图片描述
下载完成之后点击这个按钮将下载的库导入keil5(点击file–>点击import)
在这里插入图片描述
导入成功之后可以看到右侧有了STM32F1系列芯片
在这里插入图片描述

在这里插入图片描述
然后直接点击OK就可以了,接着开始在工程中新建文件夹(缓慢双击可重命名)
在这里插入图片描述
新建文件夹目标如下图所示:
在这里插入图片描述

2.3、移植固件库

将固件库下Libraries文件夹下的两个文件全部复制到自建工程文件夹下的Lib文件夹中
在这里插入图片描述
将CMSIS文件夹下除CM3文件夹全部删除,然后将CM3文件夹下的两个文件夹CoreSupport和DeviceSupport中的内容全部复制到CMSIS文件夹中,然后删除CM3文件夹
在这里插入图片描述
然后将startup文件夹下除arm文件夹全部删除,并把arm文件夹下的内容全部复制到sstartup文件夹下,然后删除arm文件夹
在这里插入图片描述
在自建工程文件夹下的USER文件夹中新建main.c
在这里插入图片描述
从固件库STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template中将如下三个文件复制到USER文件夹中
在这里插入图片描述
至此,固件库中需要移植过来的文件就全部移植完了。

2.4、配置工程

在Keil5中双击STARTUP,添加Lib\CMSIS\startup路径下的启动文件:startup_stm32f10x_md.s
在这里插入图片描述
在Keil5中双击CMSIS,添加Lib\CMSIS\startup路径下的.c文件
在这里插入图片描述
在Keil5中双击FWLIB,添加Lib\STM32F10x_StdPeriph_Driver\src路径下的所有文件
在这里插入图片描述
在Keil5中双击USER,添加User路径下的.c文件
在这里插入图片描述
在Keil5中双击DOC,添加Doc路径下的ReadMe.txt文件
在这里插入图片描述

2.5、配置Keil

Keil的默认在软件安装路径下寻找头文件,所以我们需要更改它的寻找优先级。点击Keil中的魔术棒(红色圆圈),然后在红色框体中把工程中存在头文件的文件路径都添加进去
在这里插入图片描述
在这里插入图片描述
添加宏定义,打开文件stm32f10x.h,找到如下两个宏定义:
在这里插入图片描述
宏定义一:
在这里插入图片描述
宏定义二:
在这里插入图片描述
将这两个宏定义添加到Keil中,打开魔术棒
在这里插入图片描述
到这就配置完了,可以进行编译,如果不报错,就说明配置成功了
在这里插入图片描述

2.6、Keil的一些其它设置

在这里插入图片描述
仿真器配置

注意:这里需要接上仿真器
在这里插入图片描述

然后根据自己的仿真器类型进行选择,在此我选择ST-Link
在这里插入图片描述
然后点击旁边的setting,可以看到仿真器识别出来了
在这里插入图片描述
如果没有插上仿真器,是检测不到的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、测试

在main.c中添加如下代码:

#include "stm32f10x.h"

void gpio_init()
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

	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);
}

int main(void)
{
	gpio_init();
	GPIO_SetBits(GPIOC,13);
}

然后编译,下载
在这里插入图片描述
在这里插入图片描述
可以看到开发板上的PC13小灯亮起来了,说明烧录成功了,至此,本次库搭建就圆满成功了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝勒里恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值