如何将已编写的库包含在Arduino中的自定义库中

时间:2012-08-19 19:01:42

标签: arduino

我正在创建一个新的库来控制键盘和LCD。大多数代码似乎都在编译,但当它到达我定义LiquidCristal变量的行时,它会说:

  

'LiquidCrystal'在创建自定义库时没有命名类型

这是我的LCDKeypad.h的内容摘录

// Include types & constants of Wiring core API
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#include "WConstants.h"
#endif

// Include LCD library
#include <LiquidCrystal.h>

错误在这一行:

private:
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 ); // <<-- Error

2 个答案:

答案 0 :(得分:5)

好吧,我读了很多,我发现了一篇关于这个主题的非常有趣的文章:

Including multiple libraries

它表示编译器不会搜索未包含在草图文件中的库。破解这种方法的方法是强制编译器在加载库之前将它们链接起来,包括在草案中的LiquidCrystal.h中。

假设我的库“LCDkeypad”需要LiquidCrystal。 我的主程序(草图)需要包含LiquidCrystal以便为我的库“LCDKeypad”加载它。

现在,一个有趣的事情是使用前向声明,所以在我的LCDKeypad.h中我会声明 “Class LiquidCrystal”但不包括库。我将在LiquidCrystal.cpp和草图中完成。 我希望这很清楚。

答案 1 :(得分:1)

有两种方法可以做到这一点

  • 如果您正在编写自己的代码只需创建头文件.h扩展名和相关的c代码作为name_c.While添加到主程序中,您需要用双引号指定头文件名。

代码:

#ifndef LCD_H
#define LCD_H

//Declaration of variable /functions
#endif
  • 如果您尝试从链接下载。然后,您需要将代码粘贴到D:\arduino\arduino\libraries

错误问题:

  • 多个变量声明的重叠。

  • 库函数的重叠