当前位置: 首页 > news >正文

Keil创建自定义的STM32标准库工程

注:以下工程创建将以STM32F103ZET6为例

1 下载需要的资料包

1.1 下载 Keil 的 STM32F103 芯片支持包

1.1.1 手动下载安装包

Keil官网:https://www.keil.com/
(1)进入官网,点击 Download。
在这里插入图片描述


(2)选择 Product Downloads,然后选择 MDK-Arm,进入之后选择 Device List。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


(3)直接输入芯片名称查找芯片支持包。
在这里插入图片描述

或选择供应商和内核查找芯片支持包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


(4)下载支持包 点击 STM32F1xx_DFP,进入下载界面,点击 Download 下面的支持包。

在这里插入图片描述
在这里插入图片描述


下载完成之后,后续使用 Keil 的 Pack Installer 导入到项目中。

在这里插入图片描述

1.1.2 使用 Keil 的 Pack Installer 下载

点击如下图图标打开 Pack Installer ,
在这里插入图片描述


左侧 Device 找到 All Devices - STMicroelectronics - STM32F1 Series - STM32F103 - STM32F103ZE,右侧 Packs 窗口下找到 Keil::STM32F1xx_DFP, 点击右侧的 Install 下载。
在这里插入图片描述

1.2 下载STM32F103标准外设库

ST官网: https://www.st.com/content/st_com/en.html
在这里插入图片描述
选择 Tools&Software,


在这里插入图片描述
选择 STM32 embedded software,


在这里插入图片描述
选择 STM32 Standard Peripheral Labraries,


在这里插入图片描述
选择 F1 系列,


在这里插入图片描述
点击 Get latest 进行下载外设标准库。

2 创建工程文件夹

在这里插入图片描述

Core:存放从SDK中抽取的部分可能会修改的核心文件;
Driver:存放用户编写的外设驱动;
User:存放用户函数文件
Project:存放Keil工程文件,二进制目标文件;
SDK:存放CMSIS和HAL库(或标准库)
Clean.bat:清理Project里的Keil生成的工程文件;
Readme.txt:该工程的说明信息。

3 拷贝相关文件到工程目录

3.1 解压标准外设库包

在这里插入图片描述

3.2 拷贝相关文件

(1)拷贝启动文件

在这里插入图片描述
将 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 目录下的 startup_stm32f10x_hd.s 拷贝到 00_STM32_Demo\Core 目录下。


(2)拷贝系统初始化文件和外设寄存器描述文件

在这里插入图片描述

将 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 目录下的 {stm32f10x.h, system_stm32f10x.c, system_stm32f10x.h} 拷贝到 00_STM32_Demo\Core 目录下。

(3)拷贝内核寄存器描述文件

在这里插入图片描述
将 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport\ 目录下的 {core_cm3.c, core_cm3.h} 拷贝到 00_STM32_Demo\Core 目录下。

4 Keil 创建项目工程

(1)新建项目工程。
Project - New uVision Project
在这里插入图片描述


找到对应的芯片类型。

在这里插入图片描述
在这里插入图片描述


(2)创建分组

在这里插入图片描述


(3)将本地本件添加到工程分组
在这里插入图片描述


添加文件之后需要更改文件类型,否则会出现下面的告警。

Rebuild started: Project: STM32_Demo
*** Using Compiler 'V6.14.1', folder: 'D:\Keil_v5\Core\ARM\ARMCLANG\Bin'
Rebuild target 'Target 1'
FCARM - Output Name not specified, please check 'Options for Target - Utilities'
Target not created.
Build Time Elapsed:  00:00:00

修改文件类型方法:
选中文件后右键,
在这里插入图片描述

File Type 更改为对应的文件类型,如下:
在这里插入图片描述

在这里插入图片描述
其他 .s 或 .c 文件同样设置。

注意:.h 文件添加到分组后不能设置为 “C Source File” 类型,可以设置为 “Text Document file” ,或者直接不要把 .h 文件添加到分组中,否则编译报错
在这里插入图片描述

报错信息如下:

在这里插入图片描述


(4)添加设备型号宏定义 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/92c26dbe25904d259bd7a45493471119.png)

在这里插入图片描述


(5)配置时钟和编译器版本
开发板使用8M外部晶振。
在这里插入图片描述
只能选择 version 5 的版本,不然编译报错,version 6版本有些语法不支持。


(6)配置目标文件输出路径和 listing 文件存放路径
在这里插入图片描述

在这里插入图片描述


(7)配置生成 hex 文件
在这里插入图片描述


(8)配置头文件路径和语法版本
在这里插入图片描述


(9)配置文件的编码格式
在这里插入图片描述


经以上步骤,配置完成。点击编译按钮开始编译代码,结果如下:
在这里插入图片描述

到此,以上可作为寄存器版工程
(10)拷贝标准库
将 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\ 目录下的 {src, inc} 拷贝到 00_STM32_Demo\Driver\StdLib\ 目录下。
在这里插入图片描述


将 STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h 拷贝到 00_STM32_Demo\Core 目录下。
在这里插入图片描述

将 标准库源文件添加到 Driver/StdLib Group。注意:下图文件类型要选择 C Source file(*.c)

在这里插入图片描述


添加一个使用 标准外设库 的宏 " USE_STDPERIPH_DRIVER"。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3e62ecb490a844939c03ec176f770367.png)
最后再重新编译一下工程,0错误,0告警。

在这里插入图片描述

标准库工程模板创建完毕。

相关文章:

  • jetpack之lifecycle的原理分析
  • 4.13学习总结
  • rag相关的技术
  • CSS 列表样式学习笔记
  • Spring Security 权限配置详解
  • 【5G-A学习】ISAC通信感知一体化学习小记
  • Elasticsearch搜索引擎 3(DSL)
  • 2025.4.7-2025.4.13文献阅读
  • 「Flutter」Flutter集成Google Ads广告
  • WXJ196微机小电流接地选线装置使用简单方便无需维护
  • 路由策略/策略路由之route-policy
  • 水下塑料垃圾识别分割数据集labelme格式2703张6类别
  • Redis实现签到功能
  • SSM智能排课系统
  • SpringBoot 自定义输出控制台图标
  • ANP协议深度解析:智能体网络协议的演进与革新
  • 完整源码停车场管理系统,含新能源充电系统,实现了停车+充电一体化
  • Java学习手册:Java反射与注解
  • 企业级JDK升级思路分享(一)JDK11升级到JDK17
  • UE5蓝图设置界面尺寸大小
  • 解放日报:“感觉全世界人都在上海买买买”
  • 复旦建校120周年大型义诊举行,百余名专家服务市民超三千人次
  • 信俗与共:清代新疆回疆儒释道庙宇的中华政教
  • 圆桌丨全球化博弈与人工智能背景下,企业如何落地合规体系
  • 科普|认识谵妄:它有哪些表现?患者怎样走出“迷雾”?
  • 贵州仁怀通报“正新鸡排鸡腿里全是蛆”:已对同类产品封存送检