1:本例所用到的MCU是STM32F103VET6,已经过测试,如果是其它MCU的话,选你自己的MCU就行,只需作小许修改即可。
2:首先按下图所示建立相应用的文件夹,注意层次关系:
3:下图是工程文件夹里相应的文件:
接照上图所示,在相应的文件夹里放放相关的“.C”文件,在startup里放入相应的".s文件",对于Keil 其文件在“\Libraries\startup\arm”里面可找到。
4:接着就打开Keil MDK V4.12,新建一个工程并选择好器件:
点击“品”字形的图标,建好组:
5:下图是建好组后的图并在CoreSupport组里“Add Files”了一个文件:
6:下图是startup组里“Add Files”后的图:
7:下图是StdPeriph_Driver组里“Add Files”后的图,由于文件比较多一张图并不能完全显示出来,我是将所有在“\Libraries\StdPeriph_Driver\src”所有的文件都添了进去,在实际应用时要按实际情况添加:
8:下图是STMF10x组里“Add Files”后的图:
9:下图是User组里“Add Files”后的图:
在user里你还可以加stm32f10x_it.c中断函数文件。
10:单击“OK”,终于添加文件完毕,之后就到设置了,单击右图所示的图标:,按下图所示设置好,点"Output"标签页:
再点下图select Folder for Object选项,选择输出文件路径。在之前你已建好,如果没有,也可以这是在你的工程路径下建。
11:“Output”文件夹用以存放你所勾选项目产生的“Debug Information”、"Create HEX File"和“Brower library”信息或文件。
接着就是点"Listing"标签页,设置方法和上图相同。将你的连接文件放入list文件夹。
12:点标签页“C/C++”,这页的设置很重要,首先加入这个宏:
我之前由于没设这一项,导致程序编译出现很多错误。很多入门的教程里都没有提到这一项,使我浪费很多时间,希望大家不要像我一样在这花费太多时间。
至于这为什么加这个,是什么原因,我也不是很清楚。如果谁弄明白可以告诉我。在这加的宏定义与你使用的芯片有关,依据高密度,中密度,低密度的不同而不同。后边有对应的说明。一般就这几项,可以自己试试。
13:接着,点击如图所示有红色圈的按钮选择.h文件所在的路径。
这一项是自动连接*.h文件的。一般.h文件都在库文件的子文件夹里。这里的路径以你自己电脑的路径为准。
接着按下图所示设置,也就是所用到固件库头文件的路径:
好了。编译一次吧,看是否有错?
14:这时在“Output”和“List”文件夹里就有了许多文件:
如果不要这些信息或为为发加快编译速度,可以去掉在第十步所示的“Debug Information”和“Brower library”前面的钩即可。
15:最后到了J-LINK仿真下载器相关项的设置。
下图主要是右半部分的设置:选择Debug按钮。选中use硬件仿真。
紧接着就是点红色圈的"Settings"按钮,不要忘了接上STM32开发板的电源和J-LINK,还要装好J-LINK的驱动,按下图设置好:
先点击“Scan”按钮,接着就是"Auto Clk"按钮,哈,我板子的JTAG时钟能达到10MHZ!有的则不能达到,一般选2M就行。这些设置以你的板子而定。不一定以此为标准。
16:接着上图所示点“Flash Download”标签页并按实际情况设置好:你自己的芯片是多大就选多大。
17:还有最后一步,看下图:选Utilities按钮,选你自己的仿真器。
全部完成了,设置了那么久为的就是能看到下图:
18:给大家一点设置的参考吧:
需在工程项目C/C++里面Define添加:USE_STDPERIPH_DRIVER,STM32F10X_HD
STM32F10X_LD---STM32小容量芯片
STM32F10X_MD---STM32中容量芯片
STM32F10X_HD---STM32大容量芯片
STM32F10X_CL---STM32互联网型芯片105/107等
USE_STDPERIPH_DRIVER---使用库里面的API函数
在工程startup文件里面添加相应芯片的启动文件:
STM32F10X_LD.S
STM32F10X_MD.S
STM32F10X_HD.S
STM32F10X_CL.S