Я хочу написать эскиз, который можно скомпилировать на разных платах Arduino. Я хочу показать на ПК, какая плата в данный момент подключена.
Это означает, что пользователь подключает ПК через USB-кабель к плате Arduino / Teensy, на которой выполняется мой эскиз, а мой эскиз сообщает ПК через Serial, какая плата подключена. На ПК запускается мое приложение C #, которое получает эти данные и отображает их.
Поэтому мне нужна доска, которая была выбрана при компиляции эскиза:
Я нашел код на https://github.com/backupbrain/ArduinoBoardManager, но он не дает правильных результатов (за исключением того, что несколько плат отсутствуют).
Вот фрагмент кода:
static const uint8_t BOARD_MICRO= 0x04;
....
#elif defined(__AVR_Atmega32U4__) // Yun 16Mhz, Micro, Leonardo, Esplora
static const uint8_t BOARD = 0x04;
static const uint8_t NUM_BITS = 8;
static const uint16_t CPU = __AVR_Atmega32U4__;
static const unsigned long SRAM_SIZE = 2500;
static const unsigned long EEPROM_SIZE = 1000;
static const unsigned long FLASH_SIZE = 32000;
#elif defined(.....
Таким образом, этот код дает тот же результат (BOARD = 0x04 = Micro) для Yun 16 МГц, Micro, Leonardo y Esplora.
Есть ли способ получить в моем C-коде именно ту строку, которую пользователь выбрал в меню компилятора Arduino selecetd?