代码改变世界

用stm32f10x建立新的工程或移植工程重要步骤

2017-03-12 20:38  斑鸠,一生。  阅读(1104)  评论(0编辑  收藏  举报

stm32f10x系列新建空的工程主要原理:

        1.添加启动文件

                         不同的芯片类型的启动文件的容量是不同的,选择适合该芯片的容量作为启动文件。

                         注意:启动文件是汇编语言编写的,所以文件的后缀名为.s

                2.添加时钟配置 配置文件

                          stm32f10x.的系统时钟频率配置文件是    system_stm32f10x.c

                          stm32f4xx.的系统时钟频率配置文件是    system_stm32f4xx.c

                3.添加main.c文件

                           main.c 文件的基本结构,大家都会写吧,这里就不详诉了。

                4.添加外设的.c文件,一般是吧所有的外设都有加到工程里面。

                5.添加.c文件的所用到的所有.h文件的路径。

     也就是告诉编译器头文件的位置。

     注意:stm32f10x_conf.h这个C文件,它并不代表任何外设,大家都知道,外设.c文件都有相应的.h文件,

                  这个stm32f10x_conf.h文件,包含了所有的片上外设的头文件,所以在工程中,必须添加。

 ——————————————————————————————————————————————————

             如果你是做好了上面的几个步骤,那么一定会有错误的。

             错误的提示是:warning:   #223-D: function "assert_param" declared implicitly

             从提示的代码,基本上看不出什么问题,发生错误的原理如下:

                            “stm32f10x.h” 中如果定义了USE_STDPERIPH_DRIVER,该文件就#include "stm32f10x_conf.h"。然而默认的时候是没有#define USE_PERIPH_DRIVER.

             解决办法之一:

                             在“stm32f10x.h”中添加USE_PERIPH_DRIVER的定义。并且,定义芯片的类型。

             解决办法之二:

                             直接在“stm32f10x.h"中#include "stm32f10x_conf.h"

                                      

 -------------------------------------------------------------------------------------------------------------------------------------

移植他人程序注意事项:

                1、问题一:明明引用了某头文件。但是,仍然提示没有找到?

                      原因:可能是由于库版本不同导致。

                                 移植的时候,大家一般是移植模块文件,默认认为“stm32f10x.h”等文件是一样的。实际上由于,两个工程的库版本不同,stm32f10x.h文件在库3.0版本与库3.5版本完全不同。(其他几个关键文件也是不同的)。