我正在尝试编译其他人写的arduino的极图代码。据我所知,代码本身是正确的,在我添加运行它所需的库后,我收到此错误消息。
polargraph_server_polarshield.ino:109:16:错误:'prog_uint32_t'没有命名类型
在/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/Arduino.h:28:0中包含的文件中, 来自/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI/SPI.h:17, 来自polargraph_server_polarshield.ino:47:
util.ino:在函数'long unsigned int crc_update(long unsigned int,byte)'中:
util.ino:392:31:错误:'crc_table'未在此范围内声明
util.ino:394:31:错误:'crc_table'未在此范围内声明
编译错误。
我听说你需要设置一个前向声明,因为它在数据类型中使用了两个单词,官方的arduino编译器处理得不好。我该怎么做呢?
答案 0 :(得分:1)
您提供的内容中有两个错误。首先,由于某种原因,头文件中没有包含 prog_uint32_t 的声明。所以你可能需要添加:
typedef uint32_t PROGMEM prog_uint32_t;
或包含正确的头文件,如果还缺少其他内容。
您必须发布util.ino草图的代码才能获得有关第二个错误的帮助。
答案 1 :(得分:1)
自从制作了zip包之后,该项目的回购已经更新。
该行现为:
const uint32_t PROGMEM crc_table[16] = {
当Arduino IDE 1.6出现并打破了一堆新东西时,需要进行此更改!
我已经更新了代码包以包含:
(https://github.com/euphy/polargraphcontroller/releases/tag/2015-07-15-21-25)
答案 2 :(得分:0)
看起来你用简单的C编码;在这种情况下,它是一个简单的C前向声明,例如:
struct b;