Альтернативная IDE для компиляции и запуска кода arduino?
Я не очень опытен в c ++ и знаю, что синтаксис C ++ и код, написанный / скомпилированный arduino IDE, немного отличаются.
Я хотел бы иметь возможность писать код, компилировать его так же, как arduino IDE, и запускать его, не загружая на плату.
Мне не нужно тестировать какой-либо код, который взаимодействует с каким-либо оборудованием. Я просто хочу иметь возможность протестировать базовый синтаксис, чтобы убедиться, что мои концепции работают, прежде чем интегрироваться с полной программой.
Я написал несколько программ Arduino, и я думаю, что самой сложной вещью, которую я использовал, были функции указателя, но я хотел бы иметь возможность тестировать код без необходимости загружать его на плату для каждого изменения, полагаясь при этом на Serial.print.
Я нашел альтернативы, которые помогают с отладкой, и хотя это полезно, я хотел бы избежать необходимости загружать на плату каждый раз, когда я хочу проверить изменения для основных концепций
@Jordan Klaers, 👍1
Обсуждение2 ответа
Лучший ответ:
Вы можете использовать любую C ++ IDE, которая вам нравится, лучше всего в комплекте с компилятором, например Code::Blocks . Предполагая, что вы используете Windows: подойдет и комбинация приличного редактора, такого как Notepad ++, и хорошей цепочки компиляторов, такой как MinGW. Если вам абсолютно необходимо, вы также можете использовать MS Visual Studio, я не беспокоюсь.
Затем создайте стандартные консольные программы с помощью этого main()
:
void setup();
void loop();
int main()
{
setup();
for (;;)
{
loop();
}
}
И добавьте свой аппаратный код Arduino.
Нужно избавиться от Serial.print хотя бы :) :-) Но, увы, с отладчиком вам вообще не нужен этот Serial.print., @DataFiddler
Можно было бы написать простой "последовательный класс с минимальным интерфейсом, который печатает в "стандартный вывод
или собственный канал отладчика., @the busybee
PlatformIO - это плагин для кода Visual Studio, который поддерживает многие встроенные устройства, включая большинство ардуино
Основной вопрос, по-видимому, заключается в том, чтобы протестировать их код в некотором качестве без необходимости загрузки в Arduino при каждом тестировании. Вероятно, было бы полезно сказать, как PlatformIO позволяет это сделать., @timemage
- Какие есть другие IDE для Arduino?
- Использование std::list в программировании Arduino
- Как устранить сообщение об ошибке "assignment of function 'void digitalWrite (uint8_t, uint_8)"?
- C++ против языка Arduino?
- Как использовать SPI на Arduino?
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- Ошибка: expected unqualified-id before 'if'
google
эмулятор arduino
, @jsotolaЭто разумный вариант, но мне все равно нужно было бы загрузить на плату, только эмулированную, я мог бы просто использовать одноразовую плату, которая у меня есть, и избежать хлопот с эмулятором. Однако я ценю это предложение, @Jordan Klaers
теперь непонятно , о чем вы спрашиваете ... вы хотите скомпилировать и запустить код Arduino без какого-либо оборудования, реального или виртуального... что будет делать программа? ... у него не было бы возможности взаимодействовать с вами, @jsotola
Используйте proteus с библиотекой arduino., @Mitu Raj
аналогично использованию repl.it - Я хотел бы иметь возможность писать код, который компилируется и запускается аналогично тому, что делает arduino ide. Я пытаюсь протестировать другой синтаксис для понятий, которые я не понимаю. Мне не нужно тестировать работу с оборудованием., @Jordan Klaers
извините, если это глупый вопрос. Я просто надеялся сократить некоторые этапы процесса, чтобы быстрее выучить язык. Я веб-разработчик, но по какой-то причине c ++ для меня сложнее, чем я хотел бы признать, @Jordan Klaers
"... синтаксис для C ++ и код, написанный / скомпилированный arduino IDE, немного отличаются". Arduino IDE поддерживает стандартный C ++. Что он делает по-другому, чтобы помочь учащимся, так это замечает, когда вы ссылались на библиотеку (о которой она знает!), И предоставляет ее, даже если вы забыли включить "#include", и перенаправляет объявления для функций, если вы их забыли. Если вы напишете правильный C ++, он будет компилироваться в любой стандартной среде C ++, включая Arduino IDE., @JRobert
Разница между C ++ и языками более высокого уровня (скриптовыми) заключается в том, что C ++ действительно близок к аппаратному обеспечению. Таким образом, запуск компиляций на ПК может отличаться от запуска на raspi или Arduino. И есть различия, даже если вы не используете аппаратную функцию напрямую. например, int на Arduino может иметь другой размер, чем на ПК. И кроме того, какова цель изучения Arduino C ++ без аппаратных функций? Этот язык предназначен для микроконтроллера, это чистое аппаратное обеспечение. Вы можете узнать, как работают указатели (и так далее), используя обычный C ++., @Peter Paul Kiefer
Спасибо, что разъяснили разницу, я полагаю, я могу просто использовать repl.it или даже visual studio. Я ценю вклад каждого!, @Jordan Klaers