!!编译无错误无警告,程序内容也无逻辑错误。可能因为存在两个以上的.c文件时,在1.c调用2.c中的函数体时,例:wendu = get_wendu;漏写(),wendu = get_wendu();导致编译无错误无警告。但程序实现功能不正确。
!!使用指针时,定义数组[ ]时最好不要连续定义两个长度相同的数组,长度不同应该长度小的在上面。
***.c(9): warning C329: single-line comment contains line-continuation
错误:在(9)行,加注释的时候后面或者在中间,多出一个自左向右的斜杠”\“。
***.c(442): error C300: unterminated comment
错误:在注释的时候只写了一个”/*“ , 未写”*/“
***(29): warning C206: 'display': missing function-prototype
错误:存在未声明的函数体display();
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?DISPLAY?_____________________
错误:存在一个未被调用的函数体DISPLAY();
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: TIME
MODULE: .\Objects\ds1302.obj (DS1302)
可能一:存在多个C文件,在1.c中使用了2.c中的变量或数组time。在2.c中的头文件中该变量之间加上extern time,设成全局变量。
可能二:在1.c中有一个大写的TIME变量,在2.c中有一个小写的time变量。大写TIME与小写time冲突。
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: DS1302_TIME
可能一:未把含有DS1302_TIME
这个函数体的头文件加入工程中,右击添加已存在头文件。编译这个头文件。
可能二:未包含含有DS1302_TIME
这个函数体的头文件,加入#include <....... .h>。
****.c(9): warning: #1295-D: Deprecated declaration SysTick_Handler - give arg types
错误:在函数声明中没有参数的函数体小括号中()应加上void . 即SysTick_Handler(void);
..\OBJ\Template.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by stm32f10x_it.o and main.o).
错误:说明在stm32f10x_it文件中已经定义过SysTick_Handler()这个函数体;可找到对应文件注释掉。
main.c(26): warning: #223-D: function "xxxxx" declared implicitly
错误:xxxxx函数体没有在.h文件中声明,或者与.h中声明的函数不一致。
main.c(32): error: #31: expression must have integral type
错误:存在无法取余数的变量 ->> %temp中temp必须为整数,不可以为float等类型。
main.c(16): error: #165: too few arguments in function call
错误:存在一个函数体没有填写()内的参数。
main.c(37): error: #268: declaration may not appear after executable statement in block
错误:STM32中不允许变量的定义在语句之后,把变量或数组的定义放在最前面。
main.c(37): error: #28: expression must have a constant value
错误:在数组元素个数中[ ]中括号中给了一个变量。
个人见解,感谢阅读。