前言:

仅以此系列给实验室的学弟学妹作为小车制作教程来使用,后续的内容我会在这个暑假陆续更新出来,本篇的内容是新建一个适用于STM32F103RCT6的工程

准备工作:

接下来的操作几乎是基于STM32F1xx系列的固件库,这里我给大家列出链接

STM32F1xx系列固件库                提取码:2471

我是以智然学长制作的板子来制作小车的,下面的链接是电路板的管脚示意图和电路板的PCB图,其中PCB图需要使用AD20这个软件打开

电路板管脚示意图以及PCB          提取码:2471

同时,必备的软件也不能少,一个是Keil5-MDK,另一个就是AD20,这两个大家自行下载,我这里不再赘述

正篇开始:

首先要在电脑上新建一个空文档,该文档不能存在中文目录,否则会出现一连串的错误,这里我在D盘新建了一个名为STM32_test的文件夹

在该文件夹下新建4个文件夹,分别名为USER,CORE,STM32F103_FWLIB,OBJ

之后,进入我们的Keil5,新建一个项目

选择我们刚才新建的文件夹STM32_test

进入USER目录下,输入项目的名称,这个大家自行命名,但最好不要出现中文,点击保存

之后,在我们的Keil5界面就会弹出一个新的界面,在这个界面下,我们要选择芯片的型号,这里我们选择的STM32F103RCT6

 之后点击OK就可以,接下来还会弹出一个新的界面,这时候我们不要管,直接点击cancel即可

接下来,我们回到我们的USER目录下,我们可以看到上面的界面,是我们建立完后产生的,其中Listings和Objects是空的文档,而Object是用来存放编译过程中的文件的,这个我们在之后的步骤会讲解。

之后,我们前面让大家下载的STM32F1XX固件库,就派上用场了。接下来要做的就是文件的搬运,打开固件库的STM32F10x_StdPeriph_Lib_V3.5.0文件夹

进入Libraries

进入STM32F10x_StdPeriph_Driver文件夹

 将下面两个文件下复制下来

放到我们第一步建立的STM32F103_FWLIB文件夹里面

最终,我们的STM32F103_FWLIB文件夹下所包含的文件如下图所示

然后我们要准备把文件放到CORE文件夹下面来,再次进入Libraries下

进入CMSIS文件夹

再进入CM3文件夹

进入CoreSupport文件夹下

选中这两个文件,将其放入我们自己建立的CORE文件夹下

之后,我们需要把启动文件也放到我们的CORE文件夹下面,这时候我们要进入下图所框起来的路径,选择DeviceSupport文件夹

进入ST文件

再进入STM32F10x文件夹

进入startup文件夹下

再进入arm文件夹

这里给大家展示的就是STM32各个型号的启动文件,这里的启动文件是有区别的,所有以hd结尾的启动文件,所需要的芯片Flash要大于128K,而以md结尾的启动文件,所需要的芯片Flash要大于64K,以ld结尾的启动文件,所需要的芯片Flash要小于64K,以cl结尾的启动文件,是属于互联型产品,比如STM32F105/F107,而以vl结尾的启动文件适用于STM32F100系列的芯片。这里呢,我们查阅STM32F103RCT6的数据手册,发现其Flash要大于128K所以我们这里选择以hd结尾的启动文件,将其复制到我们的CORE文件夹下

最终,我们的CORE文件夹下所包含的文件如下图所示

之后,我们要开始把文件搬运到我们的USER文件夹下,同样,就在刚才的目录下,将这三个文件复制到USER下

之后,回退到之前的STM32F10x_StdPeriph_Lib_V3.5.0文件夹下,选择我们的Project文件夹

进入STM32F10x_StdPeriph_Template文件夹

将下面的4个文件复制到我们的文件夹下

到此为止,我们的USER文件夹下所包含的文件如下图所示

到此为止,我们的所需要的文件已经复制完毕,但文件仅仅在我们的目录下,并没有在我们的MDK5中,单击Target1,然后右键,点击这个Manage Project

Keil_MDK会弹出一个新的界面

我们双击Groups下的文件,可以更改文件名称,同时,点击上方箭头所指的区域,可以新建一个分组

先选中FWLIB,再点击 Add Files,会弹出一个新界面,在这个界面下,我们选择STM32F103_FWLIB,然后选择src文件夹,选中里面所有文件,最后点击Add

之后,我们再选中我们的USER文件夹,同样的步骤,将下面三个文件Add一下

最后是我们的CORE文件夹,这里我们要加进入两个文件,一个是箭头所指的.c文件,另一个是被隐藏起来的.s文件

点击下三角,选择All flie,这时候,.s启动文件就会出来了

之后点击Add即可

到了这一步,还没完,这时候,点击魔法棒

选择OBJ,这样编译产生的文件就会存放再OBJ文件夹下了

之前,我们只是把文件包含进来了,但是并没有把文件路径包括进来,在此之前,我们要在魔法棒的界面下,选中C/C++这一栏,然后在Define这一栏输入

STM32F10X_HD,USE_STDPERIPH_DRIVER

注意,一定不要出错,否则会编译失败。(这里建议大家直接复制)

然后点击三个省略号,会出现新的界面,如下图所示

同样的道理,我们新建一个路径,点击省略号,我们分别找到对应的文件夹

如USER文件 CORE文件,以及STM32F103_FWLIB下的inc文件(这里千万不能省略)

之后,我们进入main.c文件下,将里面的代码全部清除,换成

#include "stm32f10x.h"int main()
{while(1){}
}

这下就可以大功告成了,编辑一下0错误,0警告

从零开始制作STM32F103RCT6小车(一)相关推荐

  1. 详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用

       我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了如何让小车动起来,本文作为本系列的第二篇文章,主要介绍让小车实现自动避障所涉及的一些传感器, ...

  2. UE4从零开始制作数字孪生道路监测平台

    UE4从零开始制作数字孪生道路监测平台 UE4集成Cesium for Unreal和WebSocket,后端使用NodeJs搭建服务器进行数据模拟和真实数据实时转发. 1:新建UE4项目并集成Ces ...

  3. 从零开始学ros小车仿真

    从零开始学ros小车仿真 从零开始学ros小车仿真 目录 1.从零开始学ros小车仿真(一)在solidworks中建模小车并转出为urdf文件 2.从零开始学ros小车仿真(二)在rviz中检验导入 ...

  4. 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目)

    默认情况下,我们打包 NuGet 包时,目标项目安装我们的 NuGet 包会引用我们生成的库文件(dll).除此之外,我们也可以专门做 NuGet 工具包,还可以做 NuGet 源代码包.然而做源代码 ...

  5. WordPress 主题教程:从零开始制作 WordPress 主题

    从零开始制作 WordPress 主题其实不难,只要你从现在开始认真阅读这个教程,一步一步认真学习,你就会成为一个 WordPress 主题制作高手.至少你会修改现有主题. 网络上已经有很多关于制作 ...

  6. 树莓派制作遥控小车教程

    树莓派制作遥控小车教程 一.成品图 二.准备材料: 三.开始制作 1.接线 2.写程序 一.成品图 二.准备材料: 1.树莓派 2.充电宝 3.小车套件(底盘,车轮,电机,电池座) 4.导线,杜邦线 ...

  7. 从零开始制作一个飞机大战类型的射击游戏

    射击类游戏是极为经典的游戏系列之一,它往往有着精美绚丽的画面,高度有趣的音效,为玩家呈现不一样射击体验,让人流连忘返. 今天,我们用scratch从零开始制作了的一个射击类型的小游戏,适合学习者进行学 ...

  8. 从零开始制作人脸表情的数据集

    一.背景 人脸表情识别网上已有很多教程,大多基于fer2013数据集展开的.现在的问题就在于fer2013数据集的数量太少,表情的区分度不够明显,大部分基于此数据集的模型,其识别精度仅有70%左右. ...

  9. 从零开始制作 WordPress 主题

    从零开始制作 WordPress 主题其实不难,只要你从现在开始认真阅读这个教程,一步一步认真学习,你就会成为一个 WordPress 主题制作高手.至少你会修改现有主题.  网络上已经有很多关于制作 ...

最新文章

  1. Apache Kylin Cube 的构建过程
  2. 《C#高级编程》既不高级,也不基础,东拼西凑的味道十足。。。
  3. spring boot 传递 List参数
  4. 成功解决ModuleNotFoundError: No module named 'utils'
  5. Boost.Function 库示例
  6. 百度前端技术学院-task1.8源代码
  7. C#操作excel(NPOI篇)
  8. centos下的nginx安装工作记录20130701
  9. 折腾Java设计模式之状态模式
  10. 【bzoj 1087】[SCOI2005]互不侵犯King(状压dp)
  11. PHP同步淘宝客订单数据
  12. 打印机驱动下载后只能打印单面(设置双面打印)解决方法
  13. 如何使用微信小程序第三方UI组件库
  14. Linux命令行配置网络(有线网络,无线网络)// Debian
  15. linux服务器通过代理连接网络
  16. RStudio不在Plots中显示图片的一个原因
  17. Unity笔记-29-ARPG游戏项目-01-第三人称相机
  18. 阿里云认证多少分能通过?考试题库在哪里找?
  19. Lombok @Data导致的hashCode的问题
  20. linux怎么查看内容并显示行号,linux中查看文件时显示行号

热门文章

  1. 绝对良心提供百度网盘的jdk1.8源码下载包含sun包的
  2. 计算机455端口,455端口怎么关闭-455端口关闭的方法 - 河东软件园
  3. Android降低屏幕白点吗,360手机桌面强化白点工具 降低安卓使用门槛
  4. pma连接,报错10061
  5. 高德Android 定位SDK示例
  6. java graphics画圆_在Java中绘制一个漂亮的圆圈
  7. 查看连接网络的WiFi密码
  8. bmi计算 python_Python中的BMI计算器
  9. 2021年塔式起重机司机找答案及塔式起重机司机模拟考试软件
  10. IDEA常用配置汇总