【问题标题】:Flash.h errors with Arduino 1.0.6 and Teensy 3.1 (Teensyduino, Version 1.20)Arduino 1.0.6 和 Teensy 3.1(Teensyduino,1.20 版)的 Flash.h 错误
【发布时间】:2014-12-01 21:46:49
【问题描述】:

我一直在使用来自 (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 就可以了。

提前致谢

【问题讨论】:

    标签: arduino teensy


    【解决方案1】:

    我在 PJRC 论坛上找到了答案。我应用了代码更改,它对我有用。 参考网址:http://forum.pjrc.com/threads/26156-Teensy-3-1-and-TinyWebServer-Library?highlight=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);
    }
    

    void *copy(char *to, size_t size = -1, size_t offset = 0) const 
    { 
    if (size == -1) strcpy_P(to, _arr + offset);
     else strncpy_P(to, _arr + offset, size);
    }
    

    希望这对正在使用 flash.h 库的人有所帮助

    【讨论】:

      【解决方案2】:

      而且 teensy 库中似乎有一个错误。

      您可以对其进行编辑以修复编译错误。

      http://forum.pjrc.com/threads/26676-Teensy3-x-strncpy_P()-bug?p=54965

      注意:即使更改了代码和 teensy3 avr 标头,我也无法运行 flash 演示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-16
        • 1970-01-01
        • 2019-10-18
        • 2022-10-24
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多