Arduino怎么建立一个包含很多.h和.cpp文件的工程

文章讨论了在Arduino开发中如何有效地组织screen.cpp和screen.h文件,避免编译时的重复定义问题,以及为何点击函数无法跳转到定义处的问题。

之前用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,它为什么不能跳转到函数定义的地方。
在这里插入图片描述

有了这些资料集合,单片机开发差不多全了 不能错过的Arduino图书.pdf Arduino一试就上手(第2版).pdf Arduino与树莓派哪个是更适合 - 推酷.pdf Arduino从基础到实践.pdf ARDUINO开发实战指南 AVR篇.pdf Arduino开源设计_吴义满.pdf ARDUINo玩转电子制作.pdf Arduino电子设计实战指南.零基础篇.pdf Arduino高级开发权威指南(原书第2版).pdf 深入浅出AVR单片机.pdf Arduino - Graph.pdf e络盟针对工业物联网应用供应一体_省略_angOHGreen开源硬件平台_.pdf Marvell开源KinomaJS应用框架加速物联网行业成长_.pdf wifi模块简单使用教程,如何将数据发送到电脑(esp8266 arduino库的使用) wifi.pdf [ARDUINO.ANDROID互动智作].〔美〕Simon.Monk.科学出版社.扫描版(简体).pdf [ARDUINO技术内幕].[美].Dale.Wheat.翁恺..扫描版.pdf 用ArduinoYeelink打造智能家居.pdf 中文语音引擎EKHO在Raspberrypi上的应用实例_薛凯.pdf 以大数据与物联网为基础的仿生设计方法_陈阳.pdf 华为推出基于开源的物联网操作系统_.pdf 在物联网时代_开源该怎么玩_本刊编辑部.pdf 基于Wi_FiSoC的物联网平台设计_纪亚萍.caj 基于开源硬件物联网云平台的远程控制应用_林巧生.pdf 基于微信Arduino家用物联网系统开发_薛毛毛.pdf 挑战树莓派:谁才是Geek最爱的开发板.pdf 极客DIY:利用Arduino制作智能家居系统 - FreeBuf.pdf 爱上Arduino.pdf 物联网革命的三个阶段(联接未联接的,生成智能的联接,复杂子系统的自治).pdf
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值