Можно ли использовать STL на Arduino Uno?
Я начал использовать Arduino Uno несколько дней назад. Я опытный разработчик C++, и я немного смущен.
Отличается ли компилятор Arduino от компилятора C++? Какую версию C++ использует Aruidno Uno? Почему он не поддерживает STL? Можно ли использовать STL?
Кроме того, могу ли я настроить их cpp-файл и использовать свою собственную основную функцию? Эта петля / настройка действительно раздражает меня. Спасибо!
@ZakiMkn, 👍0
Обсуждение1 ответ
Лучший ответ:
Да, существуют реализации STL для Arduino Uno (проверьте менеджер библиотек). Обратите внимание, что некоторые из них не поддерживаются и/или немного устарели. Недостатком использования STL на Arduino является также то, что эти классы могут использовать слишком много памяти. Из - за очень ограниченного объема памяти (всего 2 КБ) динамическое выделение памяти довольно рискованно, так как фрагментация памяти быстро приведет к сбою программы.
Система сборки Arduino использует шаг предварительной сборки вокруг файлов ino, который избавляет пользователя от многих проблем с поиском заголовочных файлов и настройкой путей сборки. Поначалу это немного сбивает с толку опытного программиста на C++, но это очень упрощает дело, особенно когда дело доходит до использования различных библиотек. Этот шаг сборки автоматически находит пути включения для всех файлов .h, на которые ссылаются в файле .ino. Система требует, чтобы вы объявили методы loop()
и setup ()
, но то, что вы делаете с ними, зависит от вас. Вы можете оставить любой из них пустым или никогда не возвращаться из функции цикла, вызывая любую основную функцию, которую вы хотите использовать.
В качестве примечания: есть и другие функции компилятора C++, которые отключены или не поддерживаются в Uno, потому что они сделают код большим. К ним относятся динамическое приведение типов с использованием dynamic_cast<>
и обработка исключений.
Спасибо! я погуглил отключенные функции компилятора и не нашел их, можете ли вы рассказать мне больше о них или это только динамическое приведение и исключения?, @ZakiMkn
Я нашел только об этом, но может быть и больше. Компилятор на самом деле является обычным GCC (хотя и немного старой версией) и поэтому поддерживает полный набор функций C++11, но в библиотеке времени выполнения отсутствуют некоторые части., @PMF
- Динамически создавать функции для AccelStepper, использующие методы Adafrut_StepperMotor.oneStep?
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
включите
подробный вывод
в разделеНастройки
... изучите полученную информацию в окне консоли, @jsotolaэто arduino ide вещи? bcs im с использованием платформы io, @ZakiMkn