一、错误分析方法:
- 检查硬件无误。
- 检查编译是否错误。(实在没辙时试试重启软件)
- 编译、运行不出错,但结果不对,可能是逻辑错误。
- 上述均没有错误,若硬件还是显示错误,就不要上述.c .h文件下代码了,可能出现在主程序的代码中,比如没有编写或使用硬件初始化函数。
- 各方面检查无误,就考虑一些与硬件相关但不是驱动的文件,如oled显示乱码,但其实是取字模软件的错误产生了错误的数组(如此简单的问题)。
二、以下展示我遇到的一些错误:
错误类型1:编译器会提示,若提示错误相当多且种类多,且代码逻辑、语法没有错误,很可能多加了一些 中括号、小括号。
错误类型2:函数声明错误:"implicit declaration of function" 功能函数.c文件的声明一般写在 功能函数.h 文件中,再通过 #include 功能函数来使用声明功能,main.c文件或其他.c文件只需要#include 功能函数.h文件 就可以使用功能函数啦。多个 .h 文件可以“传递”声明。
/*function.c 文件中*/
#include "headfile.h" //一定需要加
int func(int a){
return a+5;
//代码
}
/*function.h文件中*/
extern int func(int a);
/*headfile.h文件中 这是一个总的声明文件*/
#include "function.h" //main文件只需要包含文件,就可以使用这句代码内的.h文件内的声明了的函数
/*main.c文件中*/
#include "headfile.h"
func(4);
//输出 9
错误类型3:出现error报告文件莫名找不到或弹窗警告:在排除文件路径中出现中文的错误后仍无用,-->删除临时文件,IAR中右击项目总文件夹,选择clean,等待十几二十分钟,错误消失。(不知道原因)