Digispark替换Wire库

时间:2018-05-16 19:30:04

标签: arduino i2c

我陷入两难境地: 我想让Digispark读取BH1750 I2C光传感器,然后通过USB发送读数。目前我正在使用DigiUSB库发送到PC,但草图非常大(无法实现我想要的任何功能,使用94%的flash mem)。目前它只是每0.5秒发送一次值,不对其进行计算,我必须在启动时重新插入设备。我知道如何实现这些功能,只是在digispark上没有足够的空间,使用Wire和DigiUSB。 因此,为了减小尺寸,我想用SoftI2CMaster& SoftWire或USIWire取代Digistump的大线库,两者都是一半。 我尝试了两个BH1750 I2C库(两者都可以与Digistump的Wire一起工作)但是对于所有四种组合,我得到以下错误:

In file included from C:\Users\xyz\AppData\Local\Temp\arduino_modified_sketch_192160\Echo.ino:8:0:

C:\Users\xyz\Documents\Arduino\libraries\SoftI2CMaster-master/SoftWire.h:101:10: error: conflicting return type specified for 'virtual size_t SoftWire::write(const uint8_t*, size_t)'

   size_t write(const uint8_t *data, size_t quantity) {

          ^

In file included from C:\Users\xyz\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/Stream.h:24:0,

                 from C:\Users\xyz\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/TinyDebugSerial.h:31,

                 from C:\Users\xyz\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:18,

                 from C:\Users\xyz\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from sketch\Echo.ino.cpp:1:

C:\Users\xyz\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/Print.h:75:18: error:   overriding 'virtual void Print::write(const uint8_t*, size_t)'

     virtual void write(const uint8_t *buffer, size_t size);

                  ^

exit status 1

我试图弄清楚如何解决这个“冲突的返回类型”错误,但我无法弄清楚如何做到这一点。谷歌通常可靠地找到答案但不是今天。 任何帮助将不胜感激!

0 个答案:

没有答案