学习STM32的一些记录_创建库函数版本的工程
1.新建一个文件夹,用于存放MDK的工程所有文件。例如新建文件夹Template。
2.在Template下新建一个USER文件夹,用于存放工程。
3.打开MDK5,新建工程,目录在USER下。
4.在Template下新建CORE、OBJ和STM32F10x_FWLib.
CORE是用来存放核心文件以及启动文件,工程创建成功后,会有三个文件 被复制到这个文件夹分别是
core_cm3.c\core_cm3.h\startup_stm32f10x_md.s
OBJ用于存放编译过程中的过程文件以及产生的hex文件,需要点击魔法棒配置该文件夹位存放过程文件的文件夹
stm32f10x_FWLib用于存放ST官方提供的固件库函数源码
注意:以上文件夹只有在CORE里边存放了一个与启动文件相关的.s问价,其余的问价都是.c文件。
/******************************************************************/
至此,文件的框架就已经搭建好了,下面开始去ST官方提供的固件库中去复制相关的文件
5.将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src和inc文件复制到STM32F10x_FWLib下。
src中存放的是c文件。Inc中存放的是与c文件相关的.h文件,.h文件的引入在MDK设置的魔法棒中配置。
6.将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport路径下的两个问价全部复制到CORE 中,分别是 core_cm3.c\core_cm3.h这是复制的核心文件,下面复制启动文件
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm里边根据flash的大小选择对应的启动文件,我用的是stm32f103c8t6所以选择的是中等的。
到现在为止,CORE里边的问价就已经复制好了,一共三个 core_cm3.c\core_cm3.h\startup_stm32f10x_md.s
7.将\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x目录下的三个问价复制到USER目录下分别是stm32f10x.c/stm32f10x.h/system_stm32f10x.h
再去官方提供的模板文件中复制main.c\stm32f10x_conf.h\stm32f10x_it,c\stm32f10x_it.h
到此为止,USER目录下的问价都已经复制完毕。
/****************************************************************************************************/
到此为止 复制官方文件的过程结束。
下面开始去MDK5中配置相关工程
8.在manage project中新建相关的文件夹,并且将所有相关的c文件引入
9.在魔法棒中引入相关的头文件,填写相关的宏,设置输出的过程文件到我们新建的OBJ文件夹下就OK了
最后,在main中删掉所有的代码
填写如下
#include"stm32f10x.h"
void main()
{
}
编译一下是没有警告没有错误的。
至此完成了新建一个库函数版本的MDK工程。
2020年2月8日22:05:34
这个新建的方法我是看的正点原子的视频,他的相关书籍中有比较详细的新建的办法。
学习STM32的一些记录_创建库函数版本的工程的更多相关文章
- 安装git,创建本地版本库
安装 由于我使用的是Ubuntu,因此安装很简单,输入:sudo apt-get install git 如果是其他Linux版本,可以直接通过源码安装.先从Git官网下载源码,然后解压,依次输入:. ...
- LINUX内核分析第六周学习总结——进程的描述与创建
LINUX内核分析第六周学习总结--进程的描述与创建 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc ...
- Android学习笔记——Activity的启动和创建
http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html Android Activity学习笔记——Activity的启动和创建 ...
- C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节
C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...
- Spring源码学习-容器BeanFactory(三) BeanDefinition的创建-解析Spring的默认标签
写在前面 上文Spring源码学习-容器BeanFactory(二) BeanDefinition的创建-解析前BeanDefinition的前置操作中Spring对XML解析后创建了对应的Docum ...
- 学习STM32单片机,从菜鸟到牛人就是这样简单(配视频资料)
我想说,为了学习单片机而去学习单片机的思路不对. 你问,如何系统地入门学习stm32? 本身就是一个错误的问题.假如你会使用8051 , 会写C语言,那么STM32本身并不需要刻意的学习. 你要考虑的 ...
- 单片机小白应该如何学习stm32的一些实践心得!
嵌入式搬砖道路上的大三狗一枚,撑死算个初学者吧.才学有限,下面仅仅是本人对STM32学习的一点心得与建议,希望对题主有帮助吧. 心得:本人当初学习STM32的时候有一些跟风的因素,自以为学的芯片越多就 ...
- 学习STM32,你不得不了解的五大嵌入式操作系统
学习STM32,你不得不了解的五大嵌入式操作系统 原标题:学习STM32,你不得不了解的五大嵌入式操作 ...
- (转)微服务_创建一个简单的Eureka注册中心
原文地址:https://www.cnblogs.com/lplshermie/p/9105329.html 微服务和分布式已经成了一种极其普遍的技术,为了跟上时代的步伐,最近开始着手学习Spring ...
随机推荐
- [C#.NET 拾遗补漏]07:迭代器和列举器
大家好,这是 [C#.NET 拾遗补漏] 系列的第 07 篇文章. 在 C# 中,大多数方法都是通过 return 语句立即把程序的控制权交回给调用者,同时也会把方法内的本地资源释放掉.而包含 yie ...
- 5招详解linux之openEuler /centos7防火墙基本使用指南
防火墙是一种防火墙管理解决方案,可用于许多 Linux 发行版,它充当 Linux 内核提供的 iptables 数据包筛选系统的前端.在本指南中,将介绍如何为服务器设置防火墙,并向你展示使用管理工具 ...
- hdfs学习(一)
一.hdfs概述 介绍: 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储.统一管理分布在集群上的文件系统称为分布式文件系统 .HDFS(Hadoop Distributed File ...
- 用ps实现提高照片的清晰度
首先通过ctrl+j 拷贝一份 然后选择滤镜-->其他-->高反差包留 选择叠加,就可以达到效果了,实在不行,多弄几层图层
- 第6章 运行Spark SQL CLI
第6章 运行Spark SQL CLI Spark SQL CLI可以很方便的在本地运行Hive元数据服务以及从命令行执行查询任务.需要注意的是,Spark SQL CLI不能与Thrift JDBC ...
- 四则运算生成命令行程序 (Python)
Github项目地址:Github Pages 结对项目成员:张鹏 3118004985 郑靓 3118004988 一.项目需求分析 二.功能实现 三.代码实现or功能说明 ★ GUI功能扩展说明 ...
- Reinforcement Learning Using a Continuous Time Actor-Critic Framework with Spiking Neurons
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 动物会重复奖励的行为,但基于奖励的学习的生理基础仅得到了部分阐明.一方面,实验证据表明神经调节剂多巴胺携带有关奖励的信息 ...
- Shell编程—正则表达式
1什么是正则表达式 1.1定义 正则表达式是你所定义的模式模板,Linux工具可以用它来过滤文本.Linux 工具(比如sed编辑器或gawk程序)能够在处理数据时使用正则表达式对数据进行模式匹配. ...
- Java并发必知必会第三弹:用积木讲解ABA原理
Java并发必知必会第三弹:用积木讲解ABA原理 可落地的 Spring Cloud项目:PassJava 本篇主要内容如下 一.背景 上一节我们讲了程序员深夜惨遭老婆鄙视,原因竟是CAS原理太简单? ...
- 02 . Go开发一个日志收集平台之Context及etcd简单使用
Context简单使用 context设置,获取value值 应用于全局通用参数传递 package main import ( "context" "fmt" ...