网上搜索了一些方法,汇总了下,挑选了一个可行的写出来,如下。
2、选择芯片型号!。这里用:STM32F103C8。
3、提示是否拷贝,选择否!
4、新建文件夹!在工程文件根目录下新建几个文件夹:User、CMSIS、Lib、Obj、List(这里是为了养成良好的习惯!)User放置用户代码;CMSIS放置固件库的启动文件,Lib放置库文件
PS:普及(CMSIS:Cortex Microcontroller Software Interface
Standard,是 ARM Cortex 微控制器软件接口标准,是ARM公司为芯片厂商提供的一套通用的且独立于芯片厂商的处理器软件接口。)
5、拷贝!把固件库的Libraries \ STM32F10x_StdPeriph_Driver目录下的inc和src这两个文件夹复制到刚才新建的Lib文件夹中。
startup_stm32f10x_hd.s,按顺序是小,中,大容量Flash单片机的启动文件。我们这里用的是
STM32F103C8有128 K
Flash。所以,稍后,把startup_stm32f10x_md.s添加到我们的工程中。不同大小的Flash对应的启动文件不同,这点要注意。
6、建组!鼠标右击“Target1”→Manage
Componets,弹出如下的对话框,在中间列依次建立:CMSIS、Lib、User文件夹,将原有的Source
Group1改为startup,并在最右列依次添加所需要的文件。
PS:src里面的驱动文件,也可以需要哪个就添加哪个,这里全部添加,是为了后续开发的方便。并且,我们可以通过配置stm32f10x_conf.h文件来选择性添加,只有在stm32f10x_conf.h中被配置的文件才会被编译。
PS:注意,在组里面添加的,都是汇编文件和C文件 ( 即,以 .s和 .c为后缀的文件 ),即,都是源程序文件 ( 可能还有其它类型的文件,但是,都必须是源程序文件
),并且,一般地,所有源程序文件都必须添加到组里面才行。但是,头文件是不需要添加到组里面的。
7、设置!右键“Target1”→Options
For Target “Target1”,弹出下面的对话框。
PS:注意:定义STM32F10X_HD,是因为我们用的芯片是大容量的。添加了STM32F10X_MD这个宏以后,库文件里面为大容量芯片定义的寄存器,我们都可以使用了。芯片是小容量,或者,中容量时,宏要换成,STM32F10X_LD或者STM32F10X_HD。其实,不管什么容量,我们只要添加STM32F10X_HD这个宏即可。当我们用小,或者,中容量的芯片时,那些为大容量定义的寄存器,不去访问就是了,反正,也访问不了。
例如:..\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc;这里主要有几个必须要添加,一是inc的库,也就是头文件库;二是CMSIS的路径必须要添加!
PS:注意:因为编译器不会自动搜索指定目录的子文件夹,所以每个路径都要添加,就算,路径1是路径2的子目录,路径1和路径2都必须同时添加,才行。 在添加目录时要注意,在下图界面下,必须把蓝色条移到最后的空白处,再点击“OK”,最后一个路径才能被添加成功,否则,最后一个路径会丢失。