无法将Arduino库从Arduino 0023转换为1.0

时间:2012-01-05 20:23:22

标签: c++ c arduino microcontroller

我正在使用一个库,不幸的是,开发人员似乎不再处理或回复他的Git存储库中的问题。该库用于驱动HT1632C LED矩阵驱动程序,虽然它在0022/0023中工作,但它在Arduino 1.0中不起作用。编译时,我的Sketch会出现以下错误:

In file included from Final_code__1_0compatible.cpp:7:
C:\arduino-1.0\libraries\ht1632c/ht1632c.h:182: error: conflicting return type specified for 'virtual void ht1632c::write(uint8_t)'
C:\arduino-1.0\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'

引用此站点:http://arduino.cc/forum/index.php?topic=82450.0,我发现了一个与我有相同编译错误的人的评论(但是有另一个库)。看起来他们的修复是用“size_t”

替换
  

第200行:size_t write(uint8_t); //已更改为解决与print.h的冲突

库的.h和.cpp文件中的冲突行看起来是:

·H:

void write(uint8_t chr);

的.cpp:

void ht1632c::write(uint8_t chr)
{
    byte x, y;
    if (chr == '\n') {
        //y_cur += font_height;
    } else {
        //x_cur += putchar(x_cur, y_cur, chr, GREEN, PROPORTIONAL);
        //x_cur = 0;
        //y_cur = 0;
    }
    //sendframe();
}

我不是C / C ++专家,但我是正确的,因为如果我将.h更改为“size_t write(uint8_t chr)”并且.cpp为< strong>“size_t ht1632c :: write(uint8_t chr)”这会起作用吗?

我尝试过,编译,但我不知道是否用“size_t”替换“void”这个词,或者我需要用“size_t”替换“uint8_t”。

1 个答案:

答案 0 :(得分:2)

所以,

size_t ht1632c::write(uint8_t chr)

是正确的功能变化。你还应该添加一个

return 1;

之后

sendframe();

线。 write应该返回成功写入的字符数,因为你在代码中没有任何方式粘贴以确定写作中是否有错误,你应该说它有效。