一,文件夹介绍
首先去官网过去其他地方获取到官方提供的标准库文件
下面这个我是在官网进行下载的
我们在打开keil的时候会弹出一个在线下载的框(这个框这里先不做说明,后面在继续讲解),我们不使用这个在线下载功能,直接用官方提供的外设库进行开发。
在这个文件夹中我添加了些文档方便我们后续查看文档分析问题
【固件库】STM32F10x_StdPeriph_Lib_V3.5.0这个文件夹是官方提供给我们进行开发的文档,里面有4个文件夹。
_htmresc文件夹中是官方的logo图片,
Libraries文件夹存放着内核文件,启动文件和系统文件以及外设文件(主要就是使用这个文件夹),
Project文件夹主要是存放ST公司提供的外设驱动例程和标准库工程模板
Utilities文件夹主要是存放ST官方评估板的例程,一般不需要用到
stm32f10x_stdperiph_lib_um这个是一个开发文档,里面有各种案列和函数原型供大家参考。
一下这4个文档就不介绍了,后面使用的时候边用边认识,大家可以去立创或者网上进行获取。
二,工程创建
第一步:需要创建一个工程文件夹(名字可以是中文)
第二步:进入工程文件夹创建功能子文件夹
2.1:创建存放工程文件的文件夹-Project
2.2:创建存放用户代码的文件夹-User
2.3:创建存放固件库文件的文件夹(固件库文件必须存放到工程文件夹下面,keil打开的相对路径)也可以直接复制【固件库】STM32F10x_StdPeriph_Lib_V3.5.0文件中的Libraries文件夹
2.4:创建存放外设功能和驱动文件夹-HardwareDriver
2.5:选择性创建(创建存放提示文本的文件夹)txt文本文件的文件的文件夹
第三步:创建工程,并保存到文件夹中
3.1打开keil
3.2创建工程(功能栏中的Project - > new uVision Project),弹出对话框(告诉keil工程保存的位置)
注意保存时:保存类型*.uvproj;*.uvprojx,不要去对保存类型进行改动
3.3保存完毕,工程文件后会弹出一个对话框,(选择芯片类型)
由于使用的是STM32F103C8T6,采用的F1系类的芯片这里选择STM32F1 Series 找到STM32F103C8
3.4选择完芯片后,弹出个对话框,这个对话框是在线下载官方提供的固件库文件,但是有官方提供的固件库文件压缩包,所以不用在线的模式进行一个下载,这里直接关闭即可。
3.5关闭在线下载渠道对话框,会呈现一个如下图所示的界面:
对应的文件夹中会出现如下图所示:(不要对打箭头的文件进行删除)
这个两个文件很重要这个是keil生成的快捷对应方式。
还有3个文件夹,分配是调试配置文件夹和临时文件以及输出文件存放的地方
3.6创建keil软件中工程的文件夹分类
找到功能栏中三个小正方向推挤的一个图标:
先添加工程分区文件夹然后添加文件。
文件添加位置->
添加启动文件到启动文件文件:demo\LIB\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
添加内核文件(core_cm3) 和系统文件(system_stm32f10x):
内核文件的路径:demo\LIB\CMSIS\CM3\CoreSupport
系统文件的路径:demo\LIB\CMSIS\CM3\DeviceSupport\ST\STM32F10x
添加固件库文件:demo\LIB\STM32F10x_StdPeriph_Driver\src
USER文件夹下的文件需要到固件库包中进行一个复制
路径如下:0【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
复制如下四个文件:
如何添加文件->
点击ADD FILES,进入工程文件夹中进行选择文件
添加完毕以后keil里面可以看到,工程框如下图:
LIB文件夹太多了就没截图出来,哈哈
3.7环境配置(功能栏中的魔法棒)
点击魔法棒后出现一个对话框:
(由于我使用的是最新的MDK538a,配置界面可能有些不一样)
环境配置第一步:
最新版本的外部最大晶振可以不用写,会自动匹配。
第二步:输出文件的存储改变和hex文件的添加
第三步:(可进行可不进行)
第四步:主要是进行宏定义的添加,头文件的路径
为什么要添加宏定义?
之所以添加宏定义,固件文件不只是唯一芯片的固件库,当前使用的固件库是涵盖全部F1系类的芯片,所以呢需要进行一个宏定义的添加。
由于不用的芯片选用的启动文件不一样,需要添加一个宏:STM32F10X_MD
由于使用的芯片不一致所以有一个宏定义进行区分:USE_STDPERIPH_DRIVER
宏定义的分割符是个逗号,键盘上
头文件的路径采用的是相对路径:将使用到的文件含有头文件的当前目录进行一个添加
一旦XX.h文件找不到第一个想到是否头文件的路径添加是否正确。
第五步:下载调试
要是使用的是下载器在线下载的话:点击旁边按钮Settings
使用行的环境:
1.支持汉语注释:
edit->Configuration
2.智能提示(虽然keil会人工智障,明明没有错误,它会标注这段话有问题,编译却没问题,但是还是方便的)
环境配置完毕以后需要对之前添加进来的main.C进行重构:
#include "stm32f10x.h"
int main (void)
{
return 0;
}
重构完后进行编译;
第一个箭头:只针对当前修改过的段落进行编译,前面没有没问题的地方不用进编译,提高编译速度
第二个箭头:全盘编译,不关你改或者没改都会从头到尾进行一场编译。
第三个箭头:进行使用在线下载器进行下载按钮
使用最新版本的KEIL需要去将编译器去进行更改
选择V6.19或者V5.06update7就可以了,不然编译会报错。
第一个箭头:进入调试模式
第二个箭头:断点的形成
这个警告是大家经常遇到的,就那个文件的最后一行没有以空格结尾。
知道出现没有错误没有警告就可以了。