之前用keil的时候,共同实现一个功能的.c和.h文件都会放在一个文件夹里,所以想arduino有没有这样的管理方法,现在确定是有的。
例如我现在写一个串口屏的程序,首先建立一个screen.cpp文件,如下:
#include "Arduino.h"
#include “stdio.h”
void dispaly_init(int page)
{
Serial1.printf("page %d\xff\xff\xff",page);
Serial1.printf("page1.n1.val=%d\xff\xff\xff",0);
Serial1.printf("page1.n2.val=%d\xff\xff\xff",0);
Serial1.printf("page1.n3.val=%d\xff\xff\xff",0);
delay(100);
}
void display_sensor(int s1,int s2,int s3)
{
Serial1.printf("page1.n1.val=%d\xff\xff\xff",s1);
Serial1.printf("page1.n2.val=%d\xff\xff\xff",s2);
Serial1.printf("page1.n3.val=%d\xff\xff\xff",s3);
delay(100);
}
这个screen.cpp文件里包含display_init()和display_sensor()两个函数。
然后建立一个screen.h文件,如下:
#include "Arduino.h"
#include “stdio.h”
extern void dispaly_init(int page);
extern void display_sensor(int s1,int s2,int s3);
对于新建的screen.cpp和screen.h文件,首先要在头文件声明#include "Arduino.h"
。
现在在.ino文件的路径下建立一个文件夹screen,把screen.cpp和screen.h放在screen文件夹里。
在.ino文件里首先引入建立的.cpp和.h文件(可以采用相对路径,.\\表示与.ino同一目录下,..\\表示.ino的上一级目录),如下。在头文件声明后,就可以调用刚才写的display_init()和display_sensor()了。
可以看到上图中界面只显示.ino一个文件,如果用Sketch->Add file去添加screen文件夹里的.cpp和.h的话,会在.ino路径下重新生成这两个文件,编译的时候就会显示重复定义。所以如果要同时显示几个文件的话(如下图所示),可以在一开始就不建立screen文件夹,把.cpp和.h文件以及.ino文件放在一个文件夹下,但是文件一多可能不太好管理。
如果.cpp里有变量,也是同样的操作。但是现在我没弄明白的是,鼠标放在.ino里的自定义函数上会显示函数信息,但是右键go to definition,它为什么不能跳转到函数定义的地方。