前期准备:
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优秀作者主页:年纪青青
如有侵权请联系本文作者,第一时间删除博文并致歉。