将Arduino库从Arduino 0023转换为1.0时出现问题
Trouble converting an Arduino library from Arduino 0023 to 1.0
我使用的库不幸的是,开发人员似乎不再处理或回复Git存储库中的问题。该库用于驱动HT1632C LED矩阵驱动器,虽然它在0022/0023中工作,但在Arduino 1.0中不工作。编译时,我的草图会出现以下错误:
In file included from Final_code__1_0compatible.cpp:7:
C:arduino-1.0librariesht1632c/ht1632c.h:182: error: conflicting return type specified for 'virtual void ht1632c::write(uint8_t)'
C:arduino-1.0hardwarearduinocoresarduino/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更改为"size _t ht1632c::write?
我试着这样做,它编译了,但我不知道是用"size_t"替换单词"void",还是需要用"size_t"替换"uint8_t"。
因此,
size_t ht1632c::write(uint8_t chr)
是正确的功能改变。您还应该添加
return 1;
之后
sendframe();
行。write应该返回成功写入的字符数,因为您无法在粘贴的代码中确定写入中是否存在错误,您应该说它有效。
相关文章:
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题
- 当我尝试通过 arduino 上的引用传递布尔数组时出现问题
- Arduino Nano:A4988 使用串行输入时通过定时器进行步进控制不稳定
- 转换字符时Arduino DUE 和 Arduino UNO 之间的区别
- Arduino IDE 中使用 strncmp 函数时出错
- 仅在 rasperry pi 要求时才在 Arduino 上运行C++
- 如何防止每次 Arduino 启动时颜色数组都是相同的随机数组
- 使用暂停按钮ARDUINO创建灯光序列时出现问题
- 从 Arduino 中的自定义C++库构造对象时出错
- Arduino在通过Serial读取utf8时表现奇怪
- 在编译时使用 gnu++11 过滤值列表,不使用 stdlib(Arduino 环境)
- 当您希望在Arduino Uno编程中同时执行不同函数时,使用什么代码/语句
- 在 Arduino Uno 与以太网防护板中使用 Firebase Arduino 库时出现错误"#include <string> while compiling"
- 使用 ARDUINO 和处理在 8x8 LED 矩阵上显示数据时出现问题
- 当主站请求保存Arduino从站的注册表值时,如何解决Pymodbus异常
- 使用 Arduino 将位置编码器值转换为 RPM 时出现问题
- 在填充 Arduino 草图时出现范围错误
- 比较字符串(arduino)时出现问题
- Q与Arduino通信时出现串行错误
- 在Arduino错误时将4个字节转换为长字节