带 C 的 Arduino:standard/pins_arduino.h 错误

Arduino with C: standard/pins_arduino.h error

我正在尝试为 arduino uno 编写测试程序,使用 hardware/variants/standard 中的 pins_arduino.h 文件(我选择这个是因为没有 arduino_uno 文件夹或类似的在 hardware/variants 文件夹中,uno 是一种标准的 arduino)。遵循 this 指南(可能已过时 - 如果有更好的指南请 link 我)能够用纯 C 编写。当我尝试编译时,我在 pins_arduino.h 带有一系列无法​​解析的符号。这些符号可在此片段中找到:

const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
PD, /* 0 */
PD,
PD,
PD,
PD,
PD,
PD,
PD,
PB, /* 8 */
PB,
PB,
PB,
PB,
PB,
PC, /* 14 */
PC,
PC,
PC,
PC,
PC,

};

错误是:Description Resource Path Location Type Symbol 'PD' could not be resolved pins_arduino.h /Ardurino 1 line 133 Semantic Error(还有更多,数组中"PC"、"PB"、"PD"各一个)

我假设这些可能只是数字,基于之前 pins_arduino.h 中的这个片段:

static const uint8_t A0 = 14;
static const uint8_t A1 = 15;
static const uint8_t A2 = 16;
static const uint8_t A3 = 17;
static const uint8_t A4 = 18;
static const uint8_t A5 = 19;
static const uint8_t A6 = 20;
static const uint8_t A7 = 21;

我是否缺少提供这些变量的文件? 我可以将它们定义为一些数字(以及什么数字)吗?

我是否只需要接受并学习 arduino 语言并使用他们提供的 IDE(我真的不需要在我的计算机上使用另一个单一用途的 IDE)?

提前致谢。

这些符号在 Arduino.h (hardware/cores/arduino) 文件中定义:

#ifdef ARDUINO_MAIN
  #define PA 1
  #define PB 2
  #define PC 3
  #define PD 4
  #define PE 5
  #define PF 6
  #define PG 7
  #define PH 8
  #define PJ 10
  #define PK 11
  #define PL 12
#endif

Arduino.h 中定义的其他内容也在 pins_arduino.h 中使用,所以您可能想看一看。