MDK350&ST3.00外设库初探-----从工程建立到软件仿真先下载最新的ST3.00外设库。解压后随便浏览一下说明之类的~。开始建立工程:为您想要建立的工程新建一个文件夹,这里用test。然后在该文件夹下再建立两个文件夹:MDK、User。其中MDK用于存放工程文件,而User则用于存放我们自己要编辑或修改的代码文件。将固件库中的\Libraries\STM32F10x_StdPeriph_Driver文件夹copy到test目录下。这个文件夹存放了外设库的源文件。将固件库中的\Libraries\CMSIS\Core\CM3文件夹copy到test目录下。这个文件夹存放了CM3源文件(这个我不太懂)和startup文件(启动文件)。在MDK目录下建立两个目录:Obj和List。Obj用于存放编译时产生的对象文件,而List用于存放编译时产生的list文件和map文件。COPY外设库的\Project\Template下的4个文件到\test\User目录:OK,可以建立工程了~由于和51用的一个环境,所以适应起来还是挺快的^_^在MDK目录下新建工程Project-第一个选项工程名也用test按保存,会让我们选择CPU,当然选择STM32F103VB了点击OK,这时会提示我们是不是自动COPYMDK自带的启动代码,选择否,因为我们要用ST的外设库里面带的启动代码现在点这个~~~~~~~^_^!接下来:经过一堆“七荤八素”的修改设置:建立了四个组:User、StdPeriph_Driver、CM3、StartUp。User中添加\test\User下刚刚copy的两个C文件。StdPeriph_Driver中添加\test\STM32F10x_StdPeriph_Driver\src下的所有C文件,其实可以只添加用到的文件,不过我懒得找……CM3中添加\test\CM3下的两个C文件。StartUp中添加test\CM3\startup\arm下的三个S文件,这里要注意一下:是arm目录下的,两外两个目录中的文件分别是为IAR和GCC准备的。接下来是重点:点这个~~~~~设置objects的目录:OK后~HEX文件也输出到Obj目录……这点比较困扰:-(接下来:设置List文件的目录:点OK~接下来:Define中写入USE_STDPERIPH_DRIVER,STM32F10X_MD,其中第一个“USE_STDPERIPH_DRIVER”定义了使用外设库,定义此项会包含*_conf.h文件,从而使用外设库;而第二个“STM32F10X_MD”从字面理解应该是定义了中等容量的STM32MCU,但是实际中好像并没有用到,不过库中的例子带了,我也加上了。暂时使用软件仿真:接下来要设置三个启动文件的属性:因为包含了三个启动文件,而只能使用一个:因为我们用的豆皮属于中等容量的STM32,所以startup_stm32f10x_hd.s与startup_stm32f10x_ld.s属性中的包含进项目复选框都应该去掉~~从而使它们不被编译链接进工程里。事实上,做了以上设置后,仅startup_stm32f10x_md.s起作用。而勾选的时候有三种情况:黑色勾、灰色勾、没有勾;我也不知道黑色和灰色有什么区别……可能灰色是自动的吧?如果现在编译的话,会有N多错误,大多是因为头文件的关系。MDK350自带的头文件好像是用的以前的ST固件库,2.02版本的,而我们现在用的是3.00的外设库。更可气的是它们的文件名是相同的……如果设置头文件路径不对的话,MDK会搜索它自带的头文件,而不管版本,只管名字,就不能正确编译。所以要正确的设置头文件的路径。添加这三个目录:\test\STM32F10x_StdPeriph_Driver\inc;\test\CM3;\test\User。这三个目录包含了所有我们用的头文件。至此,尝试编译一下~成功后,就可以按Ctrl+F5进入软件仿真了~~~~catwill2009.4.9