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

STM32F103 Keil 库函数工程创建

  1. 标准库下载
    ST官网下载标准库可参考该文章
    • 创建库函数工程所需要标准库文件及说明如下图所示:
      在这里插入图片描述
  2. 创建工程需要的文件夹并添加文件
  • 创建一个存放整个工程的文件夹,命名为Project_STD;(名字可以任意取,但不要包含中文)

  • 在该文件夹下创建6个文件夹,各个文件夹的作用如下所示:

    名称作用
    Doc存放程序的说明文件,由编写程序的人添加
    Libraries存放标准库相关的文件;
    Listing存放编译器生成的列表文件(.lst)和.map文件。列表文件包含了源代码、汇编代码以及编译后的机器代码之间的对应关系;.map文件列出了程序中所有符号(如函数和变量)的地址分配;
    Output存放编译和链接后的目标文件(.o文件)、库文件(.lib文件)、可执行文件(.hex)
    Project存放keil工程文件
    User存放用户编写的文件

在这里插入图片描述

  • 在Libraries文件夹下创建CMSIS文件夹,在CMSIS文件夹下创建CoreSupport文件夹和DeviceSupport文件夹。之后将解压后的标准库STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport文件夹下的core_cm3.c和core_cm3.h复制到Libraries\CMSIS\CoreSupport文件夹下。
    在这里插入图片描述
    在这里插入图片描述
  • 将解压后的标准库StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm文件夹下的startup_stm32f10x_hd.s复制到Libraries\CMSIS\DeviceSupport文件夹下。
    在这里插入图片描述
    【不同型号的单片机的启动文件夹不一样,关于启动文件的选择参考下图】
    在这里插入图片描述
  • 将解压后的标准库STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h复制到Libraries\CMSIS\DeviceSupport文件夹下;
    在这里插入图片描述
  • 在Libraries文件夹下创建STM32F10x_StdPeriph_Driver文件夹
    在这里插入图片描述
  • 将解压后的标准库STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver文件夹下的inc和src文件夹复制到Libraries\STM32F10x_StdPeriph_Driver文件夹下;
    在这里插入图片描述
  • 将解压后的标准库STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template文件夹下的main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h复制到User文件夹下;
    在这里插入图片描述
  1. 打开Keil5,新建工程
  • Project—》New uVison Project…—》存放在Project文件夹下;
    在这里插入图片描述
    在这里插入图片描述
  • 选择单片机型号:STMicroelectronics/STM32F1 Series/STM32F103/STM32F103ZE;
    在这里插入图片描述
    在这里插入图片描述
  • 在线添加组件,keil的服务器在国外,在线添加很慢,关闭。我们之后在本地手动添加库文件;
    在这里插入图片描述
  1. 在keil5中添加文件组并把文件添加到keil工程中
  • 添加文件组STARTUP、CMSIS、STDLIB、USER、DOC;
    在这里插入图片描述
    在这里插入图片描述

  • 把Libraries\CMSIS\DeviceSupport下的启动文件添加到STARTUP组;
    在这里插入图片描述

  • 把Project_STD\Libraries\CMSIS\CoreSupport下的core.c、Projects\Project_STD\Libraries\CMSIS\DeviceSupport下的system_stm32f10x.c添加到CMSIS组;
    在这里插入图片描述在这里插入图片描述

  • 把Project_STD\Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件添加到STDLIB组;
    在这里插入图片描述

  • 把stm32f10x_it.c和main.c添加到USER组;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  1. 配置魔术棒选项卡
  • 勾选Target选项卡中的"Use MciroLib";把编译器版本改为version 5;如果选择version6,需要把core_cm3.c从工程中移除,具体操作如下所示:
    在这里插入图片描述
    complier version 6和complier version 5的区别

    • complier version5的编译速度较慢,变量必须定义在函数开头;
    • complier version6的编译速度更快,变量定义可以不放在函数开头;但使用complier version6时,需要把core_cm3.c文件从工程中移除;具体操作如下所示:
      在这里插入图片描述
  • 在Output选项卡中把输出文件夹定位到Project_STD\Output下;并勾选Create HEX File;
    在这里插入图片描述

  • 在Listing选项卡中把输出文件夹定位到Project_STD\Listing下;
    在这里插入图片描述

  • 在C/C++选项卡中添加处理宏STM32F10X_HD, USE_STDPERIPH_DRIVER、编译器查找的头文件路径;
    在这里插入图片描述

  • 把下面的内容复制到mai.c中,点击编译按钮即可;

    #include "stm32f10x.h"                  // Device header
    
    int main(void)
    {
    
    }
    
    
    

    在这里插入图片描述


http://www.kler.cn/a/429339.html

相关文章:

  • 大疆发布可折叠航拍无人机,仅重249g,支持 4800 万像素拍摄
  • Kafka常用命令
  • 【C++】构造函数与析构函数
  • Linux第二课:LinuxC高级 学习记录day04
  • [操作系统] 深入理解操作系统的概念及定位
  • 微软开源AI Agent AutoGen 详解
  • STM32F103单片机HAL库串口通信卡死问题解决方法
  • 【考前预习】1.计算机网络概述
  • hive:Cannot truncate non-managed table table_name
  • 利用深度纹理实现运动模糊
  • 17.字符串大小比较
  • 组件上传图片不回显问题
  • 反向代理后Request.Url.AbsoluteUri获取成了内网IP
  • YOLOv8改进,YOLOv8引入CARAFE轻量级通用上采样算子,助力模型涨点
  • mHand Pro动捕数据手套,赋予手部虚拟交互沉浸式极致体验
  • Ubuntu防火墙管理(六)——ARP防火墙过滤防御自定义系统服务
  • RFDiffusion中的ContigMap类介绍
  • linux 命令获取apk 的安装应用的包名
  • 使用ssh免密登录实现自动化部署rsync+nfs+lsync(脚本)
  • 20 设计模式之职责链模式(问题处理案例)
  • Android 事件分发机制详解/ 及Activity启动流程浅谈
  • Flutter如何调用java接口如何导入java包
  • 【数据结构】堆的概念、结构、模拟实现以及应用
  • SQL注入:sqli-labs靶场通关(第九关 时间盲注)
  • 【单元测试】单元测试介绍
  • Java 装饰器模式详解:动态增强对象功能