【发布时间】:2022-01-22 02:15:45
【问题描述】:
尝试使用此代码为 Arduino Nano 构建代码。我从const uint8_t* 转换为uint8_t* 时出错。完全理解这个问题,但我不知道如何解决这个问题。
myOLED.drawBitmap(0, 0, VUMeter, 128, 64); // draws background
VUMeter 描述为:
const uint8_t VUMeter[] PROGMEM = {...}
来自库 OLED 的函数 drawBitmap:
drawBitmap(int x, int y, uint8_t* bitmap, int sx, int sy);
您能帮我理解解决问题的方法吗?
【问题讨论】:
-
这肯定是您的库中的一个缺陷,drawBitmap 不会修改位图。一个简单的演员应该会有所帮助。
-
@datafiddler,但我猜它不会从 PROGMEM 读取数组
-
因为它必须使用访问 PROGMEM 的函数来读取它。 arduino.cc/reference/en/language/variables/utilities/progmem
-
@SembeiNorimaki,仔细阅读
-
@MarkRansom:理论上是的。这就是编译器希望您明确确认的原因。这里是为了绕过库中的错误,而应该修复它。
标签: c++ casting arduino arduino-ide