1

我最近开始学习 C++ 和 Arduino 编码,这很有趣!我有不同的板,例如 Arduino UNO R3、Arduino Mini 和 Arduino 兼容的 Teensy 3.2。

我想让我的程序自动选择特定的引脚。通过 EEPROM 库(不确定库是否是正确的术语,正如我所说的我是 C++ 新手)我可以获得每个板的 EEPROM 大小。有什么方法可以获取其他数据,例如板上有多少个可用作输入和输出引脚的数字/模拟引脚?

4

1 回答 1

2

数字引脚的数量在NUM_DIGITAL_PINS宏中定义。

模拟输入引脚的数量在NUM_ANALOG_INPUTS宏中定义。

宏位于(根据 OP 的要求添加):

Unohttps ://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/standard/pins_arduino.h#L28-L29

#define NUM_DIGITAL_PINS            20
#define NUM_ANALOG_INPUTS 6

迷你https ://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/standard/pins_arduino.h#L28

#define NUM_DIGITAL_PINS            20

https://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/eightanaloginputs/pins_arduino.h#L25

#include "../standard/pins_arduino.h"
#undef NUM_ANALOG_INPUTS
#define NUM_ANALOG_INPUTS 8

青少年 3.xhttps ://github.com/PaulStoffregen/cores/blob/1.31/teensy3/core_pins.h#L97-L127

#if defined(__MK20DX128__)

#define CORE_NUM_TOTAL_PINS     34
#define CORE_NUM_DIGITAL        34
#define CORE_NUM_INTERRUPT      34
#define CORE_NUM_ANALOG         14
#define CORE_NUM_PWM            10
#elif defined(__MK20DX256__)
#define CORE_NUM_TOTAL_PINS     34
#define CORE_NUM_DIGITAL        34
#define CORE_NUM_INTERRUPT      34
#define CORE_NUM_ANALOG         21
#define CORE_NUM_PWM            12
#elif defined(__MKL26Z64__)
#define CORE_NUM_TOTAL_PINS     27
#define CORE_NUM_DIGITAL        27
#define CORE_NUM_INTERRUPT      24  // really only 18, but 6 "holes"
#define CORE_NUM_ANALOG         13
#define CORE_NUM_PWM            10
#elif defined(__MK64FX512__)
#define CORE_NUM_TOTAL_PINS     64
#define CORE_NUM_DIGITAL        64
#define CORE_NUM_INTERRUPT      64
#define CORE_NUM_ANALOG         27
#define CORE_NUM_PWM            20
#elif defined(__MK66FX1M0__)
#define CORE_NUM_TOTAL_PINS     64
#define CORE_NUM_DIGITAL        64
#define CORE_NUM_INTERRUPT      64
#define CORE_NUM_ANALOG         25
#define CORE_NUM_PWM            22
#endif

https://github.com/PaulStoffregen/cores/blob/1.31/teensy3/pins_arduino.h#L157-L158

#define NUM_DIGITAL_PINS  CORE_NUM_DIGITAL
#define NUM_ANALOG_INPUTS CORE_NUM_ANALOG

将在其他板的类似位置找到。您只需检查该板在boards.txt 中设置的值,然后转到该板的平台文件build.variant夹下的同名文件夹。variants

通过查看这些变体文件,您可能会发现一些其他有用的东西。

于 2016-11-19T02:55:31.427 回答