1,建一个存放项目的文件夹
2,打开keil /点击新建工程 /选择之前创建好的文件夹 /将项目名设为Project(尽量取一个通用的名字)/选择STM32F103C8/---------------------------------------工程建立好
3,打开固件库 (在评论中call111找)/Library /CMSIS/SM3 /DeviceSupport /ST /STM32F10x /Startup/ arm(里面存放的都是STM32的启动文件,STM32的程序都是从这里开始执行的)/复制所有启动文件 / 返回到工程文件夹中 /新建一个文件夹取名Start / 将复制的所有启动文件粘贴到里面 /回到固件库的STM32F103x文件夹 /复制STM32F10x.h文件和2个system文件到Start文件夹中(STM32F10x.h是STM32的外设寄存器描述文件,用来描述STM32有哪些寄存器和它对应的地址;2个System文件用来配置时钟。STM32主频72MHz就是System文件里面的函数配置的)/因为STM32由内核跟外围设备组成且内核的寄存器描述跟外围设备的描述文件不在一起,所以还要 添加一个内核寄存器的描述文件 /cm3 /coresupport(这两个cm3(Cortex-M3)文件就是内核的寄存器描述(因为带了些内核的配置函数,所以多了个.c文件 /复制粘贴到Start文件夹---------------------------------------------------------------------到这一步工程的必要文件都配置完成
4,回到keil中 /单击Source Group,名字改成Start /右键 /点击Add Existing file /打开Start文件夹 /选择All files /先添加启动文件(启动文件有很多类,stm32f103c8t6这款要选择后缀为md.s的启动文件,具体型号分类需要查询)/选中,点击Add /剩下的.c和.h文件都要添加,按住ctrl依次选择 / 点击Add ,close /需要在工程选项中添加ATM32F10x.h文件的头文件路径,要不然软件找不到.h文件/ 点击魔术棒打开工程选项/ c/c++/ Include Paths/ 点击右边三个点/ 新建路径/ 点击三个点/ 把Start文件的路径添加进来/(这样就把这个文件夹的头文件路径添加进来了)
5,(再新建一个main函数,看这个工程是不是可行)打开工程文件夹/ 新建一个文件夹改名为User(main函数就放在这里)/keil中在Target上右键,点击添加group/ 将New Group改为User/ 右键/ 添加新文件名字叫main,路径选User(要不然默认放在文件夹外面)/点击Add/-----------------------这样main.c就创建好了
6,在main.c中右键插入头文件/ 选择stm32f10x.h/ 写一个main函数/ 编译运行代码
7.配置keil调试器 点击魔术棒/ Debug/ st-link Debugger/ 点击右边设置按钮/ 在flash下载中勾选Reset and Run(勾选上下载程序时就会立马复位并执行否则每次下载后还有按一下复位键才执行)
8,添加库函数 工程文件夹/ 新建Library文件夹(存放库函数)/打开固件库/ 打开libraries(里面是STM32的标准外设驱动/ src(里面都是库函数的源文件misc是内核的库函数,其他的是内核外的外设库函数 /全部复制粘贴到Library文件夹中/ 打开固件库/ 打开inc(里面都是库函数的头文件)/ 复制粘贴到Library/ 回到keil,在Target上右键添加New Group,名字改成Library/ 右键添加/ 选择添加已存在文件/ 全加入/------------------------------------------------这样就把所有库函数文件都添加进来了,但是还不能直接使用库函数
9,打开固件库/ 打开Project/ stm32Template (conf.h和2个it结尾文件,conf文件是配置库函数头文件的包含关系的,还有一个用来参数检查的函数定义,这是所有库函数都要的,2个it文件用来存放中断函数的)/3个文件复制粘贴到User文件夹中 / 回到keil,在User文件夹中添加进来/ 右击main.c头文件,打开文件跳到最下面部分(8296行)找到一条条件编译语句(如果定义了设用标准外设驱动这个字符串,下面这个include conf.h才有效/ 复制这个字符串 USE_STDPERIPH_DRIVER/ 打开工程选项,在c/c++的define中粘贴字符串(这样才能包含标准外设库函数)/ 在该界面下方点击头文件路径/ 添加User和Library路径/-----------------------------ok,这样基于库函数的工程就建好了,我们使用时只需要更改User组里面的文件,Library和Start都不需要我们改动,(可以点击三个箱子/把Library往上挪一下(不用改的都放上面,这样看着比较舒服)