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

STM32标准库搭建示例(STM32F103C8T6)

1.官网下载标准库文件

STM32F10x标准库链接

2:新建keil5项目

2.1新建项目文件夹

在自己放项目的文件夹建一个文件夹,存放自己的项目

2.2keil5新建项目
打开keil5新建项目

自己的项目名称,放在刚才新建的文件夹里,便于寻找

选择芯片型号

直接点击OK

然后会生成一下文件

不好看,把这个删了,你也可以改名

3.开始正式移植

3.1移植驱动文件

在自己建的项目中,再建一个Driver文件夹,便于放驱动文件(文件名可以根据自己改)

打开下载好的标准库文件

文件夹或文件名

说明

Libraries

包含 CMSIS

STM32F10x_StdPeriph_Driver

驱动库

Project

示例工程

Utilities

可能包含 LCD 或调试工具代码

stm32f10x_stdperiph_lib_um.chm

标准库帮助文档(建议阅读)

进入这个项目路径

\STM32F10X\stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

复制启动文件到这个刚才建的Driver文件夹里

然后回到这个STM32F10x,在复制这三个文件到Driver文件夹里

然后回到这个CoreSupport- 文件夹,把两个内核文件复制过来,因为STM32F10X是M3内核的

驱动文件就这些

3.2移植相关库文件
在自己的项目文件中创建一个存放外设库的文件夹library

打开标准库文件,打开到STM32F10x_StdPeriph_Driver。复制inc和src文件夹到你的library文件夹中

这两个文件是你的gpio,iic,spi等各种外设库接口

4.建立main.c文件

在自己的项目中建一个User文件夹,然后再建一个main.c文件

然后再打开标准库的文件夹STM32F10x_StdPeriph_Template,复制一下文件,放到User文件夹里,是用来配置库函数头文件的包含关系的,以及里面还有个用来参数检查的函数定义,这是所有库函数都需要的

5.开始往keil5中添加文件,

添加文件的时候,要选全部显示,然后要把全部的不管.c.h.s什么的都要加上,不要丢,不然后面编译出现找不到文件而错误

如下

打开keil,刚开的那个项目,也可从你的文件项目中打开

这个就是你的文件项目,双击打开就行,前提是你没关之前的项目,

5.1开始添加文件组

点击这个小三只,然后再点击2中的文件,然后创建一个User的文件,之后点击Add

5.2进去User,点击添加全部文件

全部添加

点一次Add就行,然后就点击close,然后回来看自己是否添加了,然后点OK

可以点击加号,看看是否有文件

然后添加其他library和Driver,也是使用同样的方法,这里面两个文件夹,一个放着.c文件,一个放着.h文件,.h文件等会挂路径就找到了,但是直接点击两个文件夹,所有的文件自己添加就行,两个文件中的.h和.c都要加上

这时候你会发现没有.h文件。不要着急

6.添加路径

下面添加路径,记得把自己的inc和src都添加进去

打开魔术棒,添加路径

一个一个来,重复步骤而已,不能同时一次选三个,一个一个选

顺路告诉这个编译器要使用这个标准库,在其添加 USE_STDPERIPH_DRIVER, STM32F10X_MD 这个宏

  1. USE_STDPERIPH_DRIVER
    • 启用标准库的驱动代码,确保库函数(如 GPIO_Init()USART_SendData())能被正确编译。
  1. STM32F10X_MD
    • 告诉标准库当前芯片的硬件资源(如 Flash 和 RAM 的地址范围),确保库函数操作正确的寄存器和内存区域。
    • 例如:
      • 如果错误地定义为 STM32F10X_HD(高密度),但实际芯片是 STM32F103C8T6(中密度),会导致访问超出芯片实际的 Flash/RAM 范围,引发硬件错误。

6.2添加头文件路径.h

记得把自己的inc和src都加上去

7:开始测试

点击mian.c,然后右击鼠标,然后添加头文件

编写程序,底下多留一个空

然后点击魔术棒,然后选择5,因为是stm32f103的芯片,其他芯片对应的版本自己百度去

然后直接全部编译,0错误0警告进可以了,就可以开始你的第一步了

百度网盘链接

通过网盘分享的文件:标准库

链接: 百度网盘 请输入提取码 提取码: xf1c

http://www.dtcms.com/a/308313.html

相关文章:

  • 操作系统:上下文切换(Context Switch)
  • Effective C++ 条款13:以对象管理资源
  • LLC电源原边MOS管DS增加RC吸收对ZVS的影响分析
  • Linux和shell
  • 保姆级别IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
  • ceph sc 设置文件系统格式化参数
  • 前端ESLint扩展的用法详解
  • 【实时Linux实战系列】实时图像处理应用开发
  • 【PHP类的基础概念:从零开始学面向对象】
  • Elasticsearch DSL 核心语法大全:match、bool、range、聚合查询实战解析
  • 使用神经网络与5折交叉验证进行基因组预测:基础知识指南
  • Java【代码 21】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
  • 智谱 AI 重磅发布 GLM-4.5:开源 SOTA,专为下一代智能体应用打造
  • 微服务架构技巧篇——接口类设计技巧
  • review|
  • Day15--二叉树--222. 完全二叉树的节点个数,110. 平衡二叉树,257. 二叉树的所有路径,404. 左叶子之和
  • 企业级部署 (基于tomcat与nginx)
  • 新书速览|R语言数据分析从入门到实践
  • Linux大页内存导致服务内存不足
  • Docker部署的PostgreSQL慢查询日志配置指南
  • 当文档包含图文混排表格时,如何结合大模型(如DeepSeek-VL)和OCR提取数据
  • 468. 验证IP地址
  • Ps2025
  • Python字典完全指南:从基础到实战(2025版)
  • 03 基于sklearn的机械学习-线性回归、损失函数及其推导
  • 大数据之Hive
  • MPU6050模块
  • 排序算法-选择排序(选择排序、堆排序)(动图演示)
  • 数据库Day04
  • 探索 Vue 3.6 新特性:Vapor Mode 与高性能 Web 应用开发