我准备用 systick 实现精确延时,用库函数实现,但是,编译时,发生编译错误,说一些systick的库函数定义含蓄。英文如下“function "SysTick_SetReload" declared implicitly”。后来,我猜测是此函数没有定义,发现少了两个文件 “stm32f10x_systick.c” 和 “ stm32f10x_systick.h”。于是,把这两个文件加到我的工程中,这时,刚才的错误消失了,但是,更多的错误出现了。
就是加这两个文件和以前的库文件产生了冲突,要么说,什么头文件没包含,要么说,什么标识符没有定义,要么,说,重定义,要么说,重定义冲突:编译器报错举例如下:
FWlib\src\stm32f10x_systick.c(100): error: #20: identifier "SysTick" is undefined
FWlib\src\stm32f10x_systick.c: SysTick->VAL = SysTick_Counter_Clear;
FWlib\src\stm32f10x_systick.c(115): warning: #223-D: function "assert_param" declared implicitly
FWlib\src\stm32f10x_systick.c: assert_param(IS_FUNCTIONAL_STATE(NewState));
FWlib\src\stm32f10x_systick.c: ^
FWlib\src\stm32f10x_systick.c(115): warning: #223-D: function "IS_FUNCTIONAL_STATE" declared implicitly
FWlib\src\stm32f10x_systick.c: assert_param(IS_FUNCTIONAL_STATE(NewState));
FWlib\src\stm32f10x_systick.c: ^
FWlib\src\stm32f10x_systick.c(117): error: #20: identifier "DISABLE" is undefined
FWlib\src\stm32f10x_systick.c: if (NewState != DISABLE)
我试着修改了,一些错误,比如,把有的重定义的一些定义注释掉,包含一些编译器说没有包含的头文件,或者,干脆,把包含该头文件的语句注释掉。但是,又不断有新的错误出现。改一个地方,又因为这个地方冒出更多类似上面的错误。这个库函数的文件系统怎么搞的啊。
到底,彻底,根本,正确的解决办法是什么,怎么样才能用systick的库函数。
求各位高手解答啊。我的全部工程文件在附件里面。
急呀。小弟跪求了。!!!!!!!!!!!!!!!
|