STM32F1 在 MDK 下新建标准库函数工程

一、准备

  1. STM32F10x 官方固件库;

  1. keil5 MDK 软件

二、步骤

(一)创建项目文件夹,复制固件库文件

  1. 新建项目文件夹,名称自定,如 Project

  1. 在文件夹中再新建 4 个文件夹,分别取名为 CMSIS、Lib、Startup、User、Basic、Hardware,每个文件夹的作用如下表所示,此处参考来源于洋桃电子工作室:
文件夹名称 作用
CMSIS 内核驱动程序
Lib 内部功能的基本函数库
Startup 单片机启动程序,该部分文件为汇编语言编写
User 用户程序,包括主函数,项目开发多数在这里完成编写
Basic 内部功能的驱动程序
Hardware 外部硬件的驱动程序

  1. 为每个文件夹粘贴指定的官方固件库文件
  • CMSIS 文件夹中需要粘贴的文件在官方固件库中的路径如下所示:
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h

因此,CMSIS 文件夹中的文件如下所示:

  • Lib 文件夹中需要粘贴的文件在官方固件库中的路径如下所示:
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src

因此,Lib 文件夹中的文件如下所示:

  • Startup 文件夹中需要粘贴的文件在官方固件库中的路径如下所示:
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm(里面所有的文件复制)

因此,Startup 文件夹中的文件如下所示:

  • User 文件夹中需要粘贴的文件在官方固件库中的路径如下所示:
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\main.c
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_it.c
STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_it.h

因此,User 文件夹中的文件如下所示:

(二)keil5 创建标准库函数工程

  1. 打开 keil5,新建工程

  1. 创建新工程,起名为 Project

  1. 在弹出来的对话框中选择相应的 MCU,作者的开发板使用的芯片是 STM32F103C8T6,因此选择 STM32F103C8

  1. 在弹出的对话框中,选择取消

  1. 得到工程最基础的文件夹

  1. 将刚才复制好的库文件加载到 keil5 中
  • 点击菜单栏中的三个小方块按钮

  • 在弹出的对话框中,在 Groups: 这一列里面点击方框按钮,手工输入刚才的几个文件夹名称,注意要名称一致,新建好了之后将原先自带的文件名 “Source Group 1” 点击红叉按钮删除

输入完成后如图所示:

  • 在新建好的文件夹中添加对应的文件

每个文件夹添加文件之后的截图如下:

  • 此时完成了文件的添加,点击 OK 退出

  • 此时可以在软件左侧的文件树中看到刚刚添加的文件

  1. 进行初始化的配置
  • 点击菜单栏中魔术棒的按钮

  • 首先设置单片机的晶振为 8.0MHz

  • 勾选生成 Hex 文件

  • 在 C/C++中输入处理器类型,USE_STDPERIPH_DRIVER,STM32F10X_MD

  • 在 C/C++中输入包含文件的路径,然后点击 OK

  • 在文件树中选择 main.c 文件,删除原有的内容,就可以按照自己的项目需求来填写代码了

STM32F1在MDK下新建标准库函数工程相关推荐

  1. STM32新建标准库工程

    STM32F103ZET6创建一个自己的工程 笔者自己用的是正点原子的精英版的开发板,有很多习惯也养成跟正点原子创工程的习惯. 作者学生党一枚,写的不对的地方,请大家多多包涵,学习永无止境,闻道有先后 ...

  2. Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)

    摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...

  3. 新建STM32F427IIH标准库工程

    新建STM32F427IIH标准库工程 实验前准备:最新版本的固件库,开发板,Jlink,keil5 采用最新固件库版本"V1.8.0最新标准固件库"(可上官网下载) 这边介绍从零 ...

  4. STM32F103ZET6新建标准库的工程

    1.背景: 主要记录STM32芯片在使用标准库的情况下如何新建工程. 2.工程的准备 1)下载并安装STM32F103的芯片包 2)准备好STM32的固件库 2.1:芯片包的下载 芯片包官方链接:ht ...

  5. keil建立stm32工程即标准库函数目录结构

    建立keil stm32工程文件 1. 标准库函数目录结构 需要分清库函数和keil的pack包,前者是ST公司对ST系列芯片编写的库函数,其中包括芯片的的启动文件和外设配置函数文件,后者是Keil ...

  6. (一)使用TrueSTUDIO软件新建一个基于STM32标准库工程

    一.TrueSTUDIO说明 不管是还在学习的还是已经工作的应该都很熟悉Keil和IAR这两款用来开发嵌入式的软件,在国内普遍用的这两款编译软件都是破解版的,并没有经过正规渠道授权注册,这就导致了在开 ...

  7. 使用keil建立标准STM32工程模版(图文详细版!)

    1.   模板工程的创建(超级详细版,使用的是keil 4.5版本) 1.1创建工程目录 良好的工程结构能让文件的管理更科学,让开发更容易更方便,希望大家养成良好的习惯,使用具有合理结构的工程目录,当 ...

  8. STM32入门指南(1)—新建第一个工程

    STM32入门指南(1)-新建第一个工程 文章目录 STM32入门指南(1)-新建第一个工程 STM32CubeMX配置 选择芯片 配置 IO 和其他功能 配置时钟 配置工程属性 生成代码 MDK编辑 ...

  9. 什么是库函数、寄存器?如何新建一个库函数的工程模板?(第四天,有检讨)

    PS!!!以后相关文件从例程中直接复制就好了,以下的基本是解释每个文件的作用的,对大佬没啥用(2019.8.20) 哈!今天终于进入主题了,以后我也是会建新的工程模板的人了(再也不用当只会嘴上说心里慌 ...

最新文章

  1. java包名命名规范[【转】
  2. 基于 TensorFlow 的图像识别(R实现)
  3. C++程序员如何入门Unreal Engine 4
  4. [Linux] 命令行工具
  5. Redis高级特性及优化
  6. 根据当月数据库自动生成下个月数据库--3
  7. jax-rs jax-ws_信守承诺:针对JAX-RS API的基于合同的测试
  8. 今天下午三点,2020深圳开放数据应用创新大赛将举行第二场线上推介会
  9. Win10+VS2017+Ceres-Solver-1.13.0配置
  10. 2022新版UI云购H5系统源码+完美运行/功能强大
  11. Python实现的NN神经网络算法完整示例
  12. 移动边缘计算——计算卸载
  13. 假如时光倒流,我会这么学习Java 【转载】
  14. 用例图之间的几种关系
  15. stc15f2k60f2单片机定时器_8 STC15F2K60S2单片机的定时器计数器 例题
  16. java swing tooltips_【Unity笔记】提示框ToolTips大小自适应,及其闪烁的问题
  17. 数据库原理第三章习题作业
  18. 深入理解Flash Player的安全域
  19. OPEN3D(python)学习笔记-1.3 法线估计
  20. 内存占用少的linux桌面,不同桌面环境占用内存/CPU对比

热门文章

  1. assert 能提高编程效率?你确定?
  2. 商城系统开发方案分析
  3. P4799-世界冰球锦标赛(折半枚举模板)
  4. 【Rootkit 系列研究】序章:悬顶的达摩克利斯之剑
  5. SEC悬在加密企业头上的达摩克利斯之剑
  6. 「首次深度揭秘」Fomo3D,被黑客拿走的2200万
  7. ML 的高效学习之旅,你并不孤单
  8. 摩尔定律与阿姆达尔定律
  9. 日常自写的小脚本 一
  10. 侄女是一名教师已结婚,节假日旅游顺路探望远嫁姨妈,不买任何东西是单纯还是不懂礼?