阅读 C++ 中的 Arduino 硬件规范
Read Arduino Hardware specifications in C++
我最近开始接触 C++ 和 Arduino 编程,这很有趣!我有不同的开发板,例如 Arduino UNO R3、Arduino Mini 和兼容 Arduino 的 Teensy 3.2。
我想让我的程序自动 select 特定的引脚。通过 EEPROM 库(不确定库是否是正确的术语,正如我所说的我是 c++ 的新手)我可以获得每块板的 EEPROM 大小。有没有什么方法可以获取其他数据,如板上有多少 digital/analgs 个可用作输入和输出引脚的引脚?
数字引脚的数量在NUM_DIGITAL_PINS
宏中定义。
模拟输入引脚的数量在NUM_ANALOG_INPUTS
宏中定义。
宏位于(应OP要求添加):
#define NUM_DIGITAL_PINS 20
#define NUM_ANALOG_INPUTS 6
#define NUM_DIGITAL_PINS 20
和
#include "../standard/pins_arduino.h"
#undef NUM_ANALOG_INPUTS
#define NUM_ANALOG_INPUTS 8
小小 3.x:
https://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
文件夹下的同名文件夹。
通过查看这些变体文件,您可能会发现一些其他有用的东西。
我最近开始接触 C++ 和 Arduino 编程,这很有趣!我有不同的开发板,例如 Arduino UNO R3、Arduino Mini 和兼容 Arduino 的 Teensy 3.2。
我想让我的程序自动 select 特定的引脚。通过 EEPROM 库(不确定库是否是正确的术语,正如我所说的我是 c++ 的新手)我可以获得每块板的 EEPROM 大小。有没有什么方法可以获取其他数据,如板上有多少 digital/analgs 个可用作输入和输出引脚的引脚?
数字引脚的数量在NUM_DIGITAL_PINS
宏中定义。
模拟输入引脚的数量在NUM_ANALOG_INPUTS
宏中定义。
宏位于(应OP要求添加):
#define NUM_DIGITAL_PINS 20
#define NUM_ANALOG_INPUTS 6
#define NUM_DIGITAL_PINS 20
和
#include "../standard/pins_arduino.h"
#undef NUM_ANALOG_INPUTS
#define NUM_ANALOG_INPUTS 8
小小 3.x: https://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
文件夹下的同名文件夹。
通过查看这些变体文件,您可能会发现一些其他有用的东西。