2012-03-26 101 views
2

我有一个简单的程序来升级到版本1后测试这些库。程序链接如下图书馆。它们用于SHT21湿度传感器。Arduino IDE中的库1.0

当我尝试编译程序和库时,出现以下错误。

In file included from sketch_mar26a.cpp:1: /Applications/Arduino v1.0.app/Contents/Resources/Java/libraries/Ports/Ports.h:239: error: conflicting return type specified for 'virtual void UartPlug::write(byte)' /Applications/Arduino v1.0.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'

违犯的部分从print.h

virtual size_t write(uint8_t) = 0; 

public: 
UartPlug (PortI2C& port, byte addr) 
    : dev (port, addr), in (0), out (0) {} 

void begin(long); 
byte available(); 
int read(); 
void flush(); 
virtual void write(byte); 

问题的行

+0

也许你可以将事情缩小到特定的违规部分并在这里发布?让我们去外部查看所有代码可能不是最有效的方法。尽管这个错误很可能直接指出了问题所在。 – Bart 2012-03-26 10:55:16

+0

抱歉,现在编辑 – 2012-03-26 11:28:00

回答

8

问题是,在Arduino 1.0中,打印界面更改为从其write函数(先前没有返回计数)返回“打印”字节数。你的函数声明:

virtual void write(byte); 

需要更改为:

virtual size_t write(byte); 
// or write(uint8_t) since byte is #defined as uint8_t 

和实施将需要返回写入的字节数。