前期准备:
1.keil V5 MDK-ARM
2.固件库V3.5.0(STM32F10x_StdPeriph_Lib_V3.5.0)
3.STM32F103C8T6最小系统板
4.J-Link烧写器
下面进行开发环境的搭建
下载固件库,进行解压,大概了解一下,然后关闭。

接着新建或找到自己的工作空间(建立工作空间的目的是便于储存不同开发环境下的工程)

新建工程模板(名称根据自己喜好安排)

在文件夹中新建四个文件夹

第一个文件夹ASM。存放与单片机相关的汇编文件,里面是与单片机启动相关的内容
在固件库\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

根据单片机的情况选择,STM32F103C8T6属于中容量
这里可以全部复制过来,在工程配置时选择
第二个文件夹LIB。存放固件库源码与头文件
在固件库\Libraries\STM32F10x_StdPeriph_Driver路径下的inc和src都复制过来

第三个文件夹System。存放内核相关、中断入口定义、一些重要的头文件

这些文件在
固件库\Libraries\CMSIS\CM3\CoreSupport
固件库\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
固件库\Project\STM32F10x_StdPeriph_Template
第四个文件夹USR。存放开发者自己的源码
新建一个文本文档

重命名为main.c
如果有提示选择“是”

到这里工程文件已经准备齐全,打开Keil进行工程的软件配置

点击新建工程New uVision project
选择刚才的路径\KeilMDKWorkSpace\STM32F103Project打开

写上文件名,一般和工程的文件夹名一致。这里写STM32F103Project,保存

弹出器件选择提示框
在Search快速搜索:F103C8

(1)发现并没有搜索结果,说明没有安装相关器件库,继续安排
(2)有搜索结果,点击此处跳转阅读。
打开Pack Installer

在Search快速搜索:STM32F103C8

在右侧的Packs中可以看到keil::STM32F1xx_DFP
点击Install,进行安装

当右下角100%时下载完成

Up to date为灰色时说明安装了最新的器件库

关闭页面后,会有是否重新加载提示。选择“是”

返回上边,新建工程New uVision project,按以上流程进行会搜索到结果
如果搜索到了结果会有如下显示,选中点击“OK”

继续点击“ok”

点击项目目录规划


选择对应名称文件会出现这样,点开文件类型选Asm Source files

选中适合当前单片机容量的启动文件,STM32F103C8T6属于中容量,进行添加:Add(点一下就OK)

添加完成后 是这个样子的

USR文件夹Add

System文件夹Add

LIB文件夹把inc和src中的都Add

点击OK,项目文件夹就添加好了
点击项目配置按钮:Options for Target...

在Target选项中,更改主频。ARM Compiler选择 Use default compiler version 5

在Output选项中勾选创建十六进制文件: Create HEX file

在C/C++选项中,配置宏:STM32F103X_MD,USE_STDPERIPH_DRIVER
宏参数1根据单片机容量填写,大容量(HD),STM32F103C8T6为中容量(MD),所以是STM32F103X_MD
宏参数1与参数2用(英文半角逗号)隔开。

在C/C++选项中,设置 头文件 的路径 Include Paths

在Debug选项中,选择调试工具J-Link等,选好之后点击:Setting

在Setting里的Degug选项。选择Jlink的连接模式,JTAG或SW。这里根据单片机的实际连接选择

在Setting的Flash Download选项中。勾选:Reset and Run 并确定

在Utilities选项中去掉 调试前更新:Update Target before Debugging
并添加输出文件到USR,点击OK

打开main.c文件 编写测试代码,并点击编译按钮

如果出现以下错误

说明逗号用错了,把中文逗号改为 英文半角逗号(,)
点击OK

再次编译(快捷键F7),会提示 0错误,0警告:

这说明,我们的开发环境没问题了
把单片机和仿真器连接好,单片机供电。BOOT0置0,BOOT1置0置1都可。(进入Flash)
点击下载程序:Download

可以看到程序下载完成

到这里就可以开发自己的程序了。
需要注意的是:
采用库函数开发时,最好用到那部分内容再添加到工程中,例如用到adc就把adc.c 添加到工程中。
固件库模块声明在STM32f10x_conf.h中

没有用到的部分注释掉,可以在编译程序时加快编译效率。
本教程内容大多搬运自CSDN优秀原创作者“年纪青青”,并非本人原创。
在结合了实践,经历了可能出现的错误后。本文把流程和某些错误的解决办法一起写下,更加适合 新手上路。
原文链接:STM32F10x在Keil环境下的配置
CSDN优秀作者主页:年纪青青
如有侵权请联系本文作者,第一时间删除博文并致歉。
