【保姆级实操版 - STM32 系列笔记】STM32F103标准库开发:Keil5新建工程完整教程

【32】STM32F103在Keil4软件下开发环境的建立 完整的Keil4开发STM32F103的开发环境配置,个人学习笔记同时也供大家参考!!! 阅读详情

STM32F103标准库开发:Keil5新建工程完整教程

本文详细讲解如何使用 Keil5 新建 STM32F103 标准库工程,适合STM32入门开发者快速搭建开发环境

  • 这是我创建完成的工程模板 👌 工程模板,欢迎大家按需取用~ (链接失效了的话喊我!)

一、开发环境准备

在开始创建工程前,需确保已安装并配置好以下工具:

  1. Keil MDK-ARM:本文以 V5.39 版本为例
  2. STM32F10x标准外设库:本文以 V3.6.0 版本为例(ST官方提供,可从官网或社区镜像下载)

二、创建工程模板文件

步骤1:创建根目录与模板文件夹

  1. 在电脑中新建一个文件夹(如STM32_PROJS)作为工程根目录
  2. 在根目录下创建template文件夹,用于存放工程模板文件

在这里插入图片描述

步骤2:划分模板子文件夹

在template文件夹中新建4个子文件夹,用于分类管理文件:

  • CMSIS:用于存放内核驱动、启动引导文件(核心系统文件)
  • FWLIB:用于存放标准库外设函数文件(GPIO、UART、TIM等驱动)
  • User:用于存放用户程序文件(主函数main.c、自定义功能代码)

三、导入STM32标准库文件

步骤1:复制CMSIS核心文件

从解压后的标准库中,将以下文件复制到工程CMSIS文件夹:

  1. 内核支持文件:core_cm3.h
    • 路径:STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport
  2. 设备系统文件:system_stm32f10x.c、system_stm32f10x.h
    • 路径:STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
  3. 启动文件:根据芯片型号选择,STM32F103C8T6选择startup_stm32f10x_md.s(中等容量芯片)
    • 路径:STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
  4. 头文件:stm32f10x.h、stm32f10x_conf.h
    • 路径:STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x, STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template

操作结果如下:

步骤2:复制FWLIB外设库文件

将标准库中STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver文件夹下的inc(头文件)和src(源文件)完整复制到工程FWLIB文件夹,包含所有外设驱动文件(如stm32f10x_gpio.c、stm32f10x_rcc.c等)。

在这里插入图片描述

四、Keil5新建工程并配置

步骤1:新建Keil工程

  1. 打开Keil uVision5,点击顶部菜单栏Project → New μVision Project
  2. 选择工程保存路径为根目录 STM32_PROJS 下的 template 文件夹,新建工程文件夹 TEST,点击保存

步骤2:选择芯片型号

在弹出的Select Device for Target窗口中:

  1. 搜索框输入STM32F103C8
  2. 选择STMicroelectronics → STM32F1 Series → STM32F103C8
  3. 点击OK,完成芯片选择
  1. 关闭弹出的新建工程小助手

步骤3:创建文件组并添加库文件

  1. 在Project窗口右键Target 1,依次创建3个文件组:CMSIS、FWLIB、User
  2. 向CMSIS组添加工程CMSIS文件夹下的 core_cm3.h 等全部 6 个文件
  3. 向FWLIB组添加工程FWLIB文件夹下的 misc.c 等全部 46 个文件
  4. 向User组添加空的main.c文件(后续编写主函数,我随便写了点内容)

在这里插入图片描述

五、配置Keil编译环境

步骤0:配置调试器 (本文用的是 ST-LINK)

  1. 点击 “魔术棒按钮”,点击 Debug 选项
  2. 下拉列表选中 ST-LINK
  3. 点击 OK 确认

步骤1:添加头文件搜索路径

  1. 右键Target 1 → Options for Target 'Target 1'
  2. 切换到C/C++选项卡,点击Include Paths后的...按钮
  3. 添加以下路径(相对路径,确保路径正确):
    • ../CMSIS
    • ../FWLIB/inc
    • ../User

在这里插入图片描述

步骤2:添加宏定义

在C/C++选项卡的Define输入框中添加宏: USE_STDPERIPH_DRIVER

  • USE_STDPERIPH_DRIVER:启用标准库驱动
    在这里插入图片描述

六、编写测试代码(验证工程)

在User文件夹下的main.c中编写简单的LED闪烁测试代码,验证工程是否正常:

#include "stm32f10x.h"

// 标准库 延时函数(带 volatile,不被优化,否则灯是常亮的)
void Delay_ms(uint32_t ms)
{
	volatile uint32_t i, j;
	for(i = 0; i < ms; i++)
		for(j = 0; j < 7200; j++);
}

int main(void)
{
	// 1. 使能 GPIOC 时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	
	// 2. 初始化 PC13 为推挽输出
	GPIO_InitTypeDef GPIO_InitStruct;
	
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOC, &GPIO_InitStruct);
	
	// 3. 死循环,LED 闪烁
	while(1)
	{
		GPIO_ResetBits(GPIOC, GPIO_Pin_13);	// 亮
		Delay_ms(500);
		
		GPIO_SetBits(GPIOC, GPIO_Pin_13);	// 灭
		Delay_ms(500);
	}
}

效果如下:

完结撒花 🌸

2-STM32入门 意法半导体公司推出STM32芯片。只需动手。第一步安装开发环境。 阅读详情

相关推荐

KEIL5移植标准库到新建的工程

keil5,嵌入式

wxyczhyza的博客 3554

STM32-Keil5工程创建

keil5工程创建

V_ellichor的博客 722

创建STM32标准库工程模板(以F103系列为例)

【代码】创建STM32标准库工程模板(以F103系列为例)

weixin_45669769的博客 1376

keil_5创建STM32工程,超详细

8、因为STM32是内核和内核外围的设备组成的,而且内核的寄存器描述和外围设备的描述文件不在一起,所以还要添加一个内核寄存器描述文件。下面两个cm3(Cortex-M3)文件就是内核的寄存器描述文件,它还带有内核的配置函数,所以多了个 .c 文件。点①新建路径,点②三个点的按钮,将Start的路径添加进来(图片中的已添加),点击OK这样就将头文件夹的路径添加进来了。7、① stm32f10x.h文件,是STM32的外设寄存器描述文件,用来描述STM’32有哪些寄存器和它对应的地址。

weixin_47001540的博客 1万+

STM32F103标准库开发:Keil5新建STM32工程

新建STM32工程 步骤一:创建工程模板文件 新建一个文件夹 template 在文件夹template里面新建五个文件 (1)CMSIS: 存放内核驱动程序和启动引导文件 (2)FWLIB:存放库函数文件 (3)Project:存放工程文件 (4)System:存放自己写的驱动程序 (5)User:存放用户程序(主函数) 步骤二:导入stm...

MQ0522的博客 2万+

GD32F303标准库开发:Keil5新建GD32标准库工程

GD32F303标准库开发:Keil5新建GD32标准库工程

MQ0522的博客 8903

用keil5新建STM32工程(超详细的图解操作)

一、去STM32社区下载STM32官方库 STM32社区网站如图: 点击资料下载,接着如图: 点击下载STM32库,如图: 下载之后得到如下文件: 三、准备建工程所需要的文件夹 新建project文件夹,并在里面新建三个文件夹,CMSIS(存放内核函数及启动引导文件),FWLIB(存放库函数),USER(存放用户自己的函数),如图。 打开刚才下载的官方库, 将Libraries\CMSIS\CM3\CoreSupport中的文件和Libraries\CMSIS\CM3\DeviceSuppor

小治成长记 8万+

手把手教学一文在Keil5创建工程模版(以STM32F103C8T6点灯为例)

手把手搭建STM32F103C8xx点灯的Keil5_MDK工程模版。白嫖工程模版含合理的工程文件夹架构,含keilkill.bat清理MDK工程生成文件的脚本,适合小白也适合弄项目的小伙伴。

⭐小星星的博客⭐ 1万+

基于KEIL5的STM32F103系列标准库工程创建与软件的下载

③选择工程目录下的Start文件夹,双击或者点击添加,进入存放文件的Start目录下,在下方选择All files “.”,然后选择以下几个文件,点击添加,将文件添加进入keil里的Start文件夹里,添加完成后点击关闭即可。3)根据自己的芯片型号选择对应的芯片,例如我的是STM32F103RBT6,则选择对应的STM32F103RB,然后点击ok,此处在安装上述的固件支持包之后就会有显示。①在网盘中提供了F1系列的固件支持,将这个文件下载解压到文件夹,我们需要通过这个固件包里的文件进行标准库文件添加。

qq_59295209的博客 9745

Keil5建立基于STM32标准库的工程(以STM32F103系列为例)**超详细教程**

打开左上角魔术棒,我们配置一下头文件引用在宏定义输入USE_STDPERIPH_DRIVER然后再找到路径引用头文件,点击ok最后打开main.c函数,右键就可以引用头文件了】编译一下,没有问题这样子我们的基于标准库的STM32工程就建立完成了,就可以直接调用标准库的函数来编写程序了。

2402_83344309的博客 2508

Vivado FFT IP核配置与实战:FPGA信号处理硬件加速指南

快速傅里叶变换(FFT)是数字信号处理(DSP)中的核心算法,用于将时域信号转换到频域进行分析。其原理基于离散傅里叶变换(DFT),通过蝶形运算的分解与复用,大幅降低了计算复杂度。在工程实践中,软件实现的FFT难以满足高速实时处理的需求,因此硬件加速方案至关重要。FPGA凭借其并行架构和可定制性,成为实现高性能FFT的理想平台。通过集成专用的FFT IP核,如Vivado中的Pipelined Streaming I/O架构,可以构建流水线化的计算引擎,实现极低延迟和高吞吐量的连续数据流处理。这种硬件方案特

weixin_42536863的博客 647

keil5新建STM32工程文件--实践篇手把手教学(以STM32F103为例)

Keil5新建STM32工程模板-手把手超详细

SuperShuiShui’博客 3万+

process插件_利用SPSS 插件MLmed检验多水平中介的调节模型

本文介绍一个SPSS插件,用于检验多水平中介的调节,及该方法与Mplus的比较。1 Mlmed 简介及安装Mlmed 简介: Mlmed 由Rockwood 2017年开发,基于SPSS插件计算Multilevel moderated mediation. 可以提供multilevel mediation Monte Carlo 置信区间比如(模拟20000次),以及多水平调节的...

weixin_39976081的博客 5774

STM32F103标准库开发---目录

STM32F103标准库开发---目录 小白胎教级教程,一看就懂,一点就通。

MQ0522的博客 7489

汽车级智能栅极驱动器深度解析 | 连载01:DRV871x-Q1系列产品架构与核心特性

集成度:单芯片集成多通道驱动器、电源管理、电流检测智能化:自适应控制算法,减少外部元件可靠性:多重保护机制,满足汽车级要求灵活性:SPI和硬件两种接口,适应不同应用需求。

VehSwHwDeveloper的博客 1153

【ComfyUI】FluxKontext 身形调优与体态增强

AI身形调优与体态增强解决方案 该工作流通过Flux系列模型实现人物体态的智能化增强,主要特点包括: 采用UNet主体模型+双文本编码器+身形增强LoRA的架构组合 通过ReferenceLatent保持原始姿态的同时强化胸腰臀比例 完整工作流包含图像加载、文本编码、潜空间映射等8个核心节点 支持自动化的前后效果对比展示 应用优势: 保持人物自然姿态的前提下实现局部强化 支持通过Prompt精确控制增强方向 适用于摄影后期、角色美化等创作场景 输出效果稳定且风格统一 使用方

Mr数据杨 1300

手把手教你用Keil5新建STM32工程

STARTUP要选择CMSIS\startup\arm中的startup_stm32f10x_hd.s、startup_stm32f10x_ld.s、startup_stm32f10x_md.s三个。确定之后跳出一个窗口,直接关掉(这是让选择启动引导等的,我们已经下载的库里有,所以跳过这一步)。将官方库中Libraries\STM32F10x_StdPeriph_Driver中的 inc 和src文件夹 复制到刚才新建的FWLIB文件夹中。下载之后安装,这里的芯片支持包对应标准库的开发。

zhuxinmingde的博客 6495

fast-lio运行步骤(使用velodyne数据)

使用fast-lio运行velodyne数据

ericdowney 4769

FreeRTOS移植STM32F103:保姆级教程

在源码的文件夹中的FreeRTOS下找到Demo文件夹,在Demo文件夹找到我们芯片对应的文件夹,获取其中的FreeRTOSConfig.h文件,将这个文件拷贝到自己创建的项目的freertos文件夹下即可。在driver文件夹中创建usart文件夹,在usart文件夹中创建Driver_Usart.c与Driver_Usart.h文件。将FreeRTOS中Source文件夹下的include中所有的文件拷贝到自己创建的项目freertos/include文件下。将对应的文件添加进对应的文件夹。

Zero_092的博客 4187

SerDes系列之FFE均衡技术

FFE的基本结构可以在RX侧或TX侧实现,其基本工作原理相同:它通过从同一信号源应用适当的延迟来产生多径信号,然后对它们进行线性缩放和组合以消除信道ISI。

一只豌豆象的博客 4243

里海NX二次开发3000例-专栏目录

UDO(User Defined Object)是“用户自定义对象”。应用非常广,可以用UDO创建自定义特征,也可以对NX原有的特征添加一些特殊信息,这些信息会保存在部件中,以后可以查询。还可以实时追踪NX对象,例如做3D包容盒线框自动追踪实体,做2D矩形框自动追踪图纸尺寸值,这些在下面的例子都有介绍。读者可以自己编译下面的例子,体会理解UDO的用法。------里海 20230512序号内容​链接01使用UDO在所有实体上设置更新回调​链接02使用UDO生成跟踪实体的线框​链接03删除UDO​链接。

王牌飞行员_里海的博客 7716

Keil5 MDK从安装器件包到新建工程详细教程(保姆级)

详细介绍了Keil5MDK软件的器件包安装方法以及基于STM32F1的新建工程方法。

m0_74858601的博客 4119

【华为OD机试】真题E卷-一种字符串压缩表示的解压(C++)

有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串aaabbccccd 经过压缩变成字符串 3abb4cd请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。

u014481728的博客 894

使用keil5自带库创建STM32工程

使用keil5自带库创建STM32工程一、开发环境 IDE: keil5.21 操作系统: Windows10 STM库版本: STM32F1 二、创建工程打开keil5 点击 Project-New uVisionProject新建一个工程文件夹我是建立在F盘,Keil5test文件夹下,工程文件夹名为 My Project输入自己的工程名: 点击保存,跳转到keil选择驱动界面,选择单片机

lanhaixuanvv的博客 2万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

STM32新建工程(STM32F103ZET6为例)

鼠标点击main文件中,双击即可生成代码以上建立的寄存器开发环境(我们对寄存器开发环境进行了解即可,下面一小部分是寄存器开发点灯示例,不感兴趣可以跳过)(a)首先是RCC的寄存器,来使能GPIO的时钟,GPIO都是APB2的外设APB2 外设时钟使能寄存器(RCC_APB2ENR)写1是打开GPIOC时钟,即RCC->APB2ENR = 0x00000010;(b)需要配置PC13口的模式(端口配置高寄存器(GPIOx_CRH) (x=A..E))CNF13和MODE13就是配置13号口的。

aloneboyooo的博客 4152

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【STM32】从新建一个工程开始:STM32 新建工程的详细步骤

STM32 开发通常使用等工具来创建和管理工程。此处是 使用创建 STM32 工程的详细步骤。

猫猫的小茶馆 1842

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 【保姆级实操版 - STM32 系列笔记】新手入门STM32第一课:CubeMX+Keil MDK实现LED点灯
下一篇: STM32F103C8T6 理论部分学习笔记
CODE_RabbitV
博客等级 码龄7年 2930粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值