gpt4 book ai didi

c++ - 将 Arduino 库从 Arduino 0023 转换为 1.0 时遇到问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:41 26 4
gpt4 key购买 nike

不幸的是,我正在使用一个库,开发人员似乎不再处理或回复他的 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”替换一些东西

Line 200: size_t write(uint8_t); //changed to resolve conflict with 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”。

最佳答案

所以,

size_t ht1632c::write(uint8_t chr)

是正确的功能更改。您还应该添加一个

return 1;

紧接着

sendframe();

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

关于c++ - 将 Arduino 库从 Arduino 0023 转换为 1.0 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8749232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com