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版本完全不同。(其他几个关键文件也是不同的)。