我一直在使用来自 ( http://arduiniana.org/libraries/flash/ ) 版本 5 的 Flash.h 库和 Arduino 1.0.5 和 teensy 3.1,没有任何问题。我必须升级到 1.0.6 版,现在我收到此错误
[removed path from message]
/.../libraries/Flash/Flash.h: In member function 'char* _FLASH_STRING::copy(char*, size_t, size_t) const':
/.../libraries/Flash/Flash.h:79:44: error: operands to ?: have different types 'int' and 'char*'
这是 flash.h 中的代码
char *copy(char *to, size_t size = -1, size_t offset = 0) const
{
return size == -1 ?
strcpy_P(to, _arr + offset) : strncpy_P(to, _arr + offset, size);
}
乍一看,我可以看到操作数正在比较 strcpy 和 strncpy 并且它们都返回 char* 所以我不确定为什么它认为一个是 int。
这个页面有关于使用的两个函数的参考http://tuxgraphics.org/common/src2/article12051/avr-libc-user-manual/manual/group__avr__pgmspace.html
任何帮助将不胜感激,以找出问题所在。库测试适用于 vailla Arduino 1.0.6,但是当我安装 Teensyduino,版本 1.20 并尝试为 teensy 3.1 编译时,我收到此错误。如果我将它编译为 Arduino Uno,它就可以工作。
提前致谢