自定义库的 Arduino Due 条件编译常量

wil*_*art 3 arduino arduino-ide

我正在编写一个自定义库,它在 Arduino Uno 上正常工作。但是,我现在已经掌握了 Arduino Due,我需要定义一些板特定的引脚常量。

我知道对于大多数电路板,您可以#ifdef使用\\arduino-1.5.2\hardware\tools\avr\avr\include\avr\io.h. 例如:

#if defined (__AVR_ATmega128__)
    //do something specific
#endif
Run Code Online (Sandbox Code Playgroud)

有人知道哪个是用于到期的正确常量吗?

Ada*_*m F 5

该_SAM3XA_会工作,但包括了很多其他爱特梅尔ARM芯片(SAM3X8C,SAM3X8H等)。

更精确的东西是

#if defined (__arm__) && defined (__SAM3X8E__) // Arduino Due compatible
// your Arduino Due compatible code here
#endif
Run Code Online (Sandbox Code Playgroud)

(有关更多信息,请参阅文件sam3.h。)

如果您只想针对 Arduino Due(不考虑兼容板),您可以使用

#if defined (_VARIANT_ARDUINO_DUE_X_)
// your Arduino Due code here
#endif
Run Code Online (Sandbox Code Playgroud)

(这是在 Arduino Due 的variant.h文件中定义的。)