КЛион + Ардуино
Пожалуйста, помогите мне настроить Clion + Arduino.
У Clion есть подключаемый модуль Arduino, который я установил. Вот некоторые инструкции на Github, но я совершенно не разбираюсь в cmake и других вещах, о которых говорится в инструкциях. Раньше я использовал только Arduino IDE для своих простых проектов. Теперь в CLion я могу создавать проекты Arduino, но автодополнение не работает. На самом деле это работает, но делает это на настоящем C, а не на коде Arduino.
Пожалуйста, объясните для полного идиота, что мне нужно изменить, чтобы автозаполнение Arduino заработало.
@Kvach, 👍21
Обсуждение2 ответа
Вместо использования какого-либо подключаемого модуля я использую CLion с PlatformIO, который поддерживает несколько IDE. Таким образом, CLion обеспечивает не только завершение кода, но и полную поддержку рефакторинга, Git и многого другого.
Из его документации:
[...] создать проект с помощью команды
platformio init --ide:platformio init --ide clion --board %TYPE% # For example, generate project for Arduino UNO platformio init --ide clion --board uno
Затем импортируйте проект в CLion, и все готово.
Некоторые советы:
Убедитесь, что ваш код находится в папке
src, а основной файл имеет расширение.cpp.Для других файлов: либо переименуйте все файлы
.ino, чтобы использовать.cpp, либо скажите CLion, чтобы связать.inoрасширение с файлами C++. (Настройки, редакторы, типы файлов.)Всякий раз, когда вы добавляете библиотеки в папку
lib(и используете#includeдля ссылки на них), просто запускайте указанный вышеinit. команду еще раз.Если вы используете платы ESP и заменили
platform.txtна альтернативныйesptool, обратите внимание, что PlatformIO требуется другой хак.Вместо использования подключаемого модуля CLion Serial Monitor я просто использую терминал в CLion для загрузки и запуска монитора как можно быстрее:
pio run -t upload; pio device monitor -b 115200Если вы всегда хотите выполнять загрузку и мониторинг при использовании
pio run, добавьте:[env] targets = upload, monitor upload_protocol = esptool upload_speed = 115200 monitor_speed = 115200В настоящее время CLion также имеет подключаемый модуль PlatformIO, включая меню Инструменты , PlatformIO с помощью таких команд, как Re-init.
спасибо за ваш информативный ответ. это помогло мне совсем немного. только одно: не могли бы вы подробнее остановиться на последнем пункте списка? как вы открываете пользовательские терминалы? эта команда работает на всех платформах или только на линуксе? заранее спасибо, @Neuron
@Neuron, в CLion на Mac это меню «Вид», «Инструменты Windows», «Терминал». (На Mac встроенная оболочка bash также называется Terminal.) Но нет никакой реальной разницы с использованием отдельного окна терминала, за исключением того, что все находится в одном месте, и по умолчанию это удобно в папке проекта. Что касается команды pio: я использовал ее только на Mac, и она точно такая же, как platformio. (Оба устанавливаются при установке PlatformIO.), @Arjan
Вы открыли для меня целый новый мир! спасибо ^_^, @Neuron
Большое спасибо, загрузка кода работает для меня! Но не серилапорты, там написано:
> монитор последовательных портов pio -b 115200
Ошибка: нет такой команды "serialports", @invis
Хорошо, теперь это platformio device monitor, @invis
Но CLion не видит зависимостей, которые я добавляю с помощью pio lib install --save {lib_name}. Есть идеи, как это исправить?, @invis
@invis, тебе не подходит третий пункт?, @Arjan
@Arjan хм, на самом деле помогает pio init с аргументами. Мой каталог lib пуст, поэтому я был сбит с толку. pio добавляет зависимости в свой собственный каталог с именем .pio/libdeps, @invis
К сожалению, плагин PlatformIO нарушает функции рефакторинга и генерации кода CLion. Таким образом, вы теряете главное преимущество этой замечательной IDE., @zhekaus
Я знаю, что это было задано давно, но, возможно, это будет кому-то полезно. Я новичок во всем этом, поэтому, если кто-то знает лучший способ сделать это, пожалуйста, поправьте меня. вот как я настроил CLion для Arduino (в Windows 10):
CLion 2016.1.3 + Arduino 1.6.9 + плагин
Загрузите и установите официальную среду разработки Arduino IDE (1.6.9).
Загрузите и установите MinGW в папку 'C:\MinGW'
В MinGW установите: 'mingw32-base' и 'mingw32-gcc-g++'
Загрузите и установите CLion.
Создайте проект без названия, чтобы открыть CLion.
В CLion > Настройки > Плагины > Обзор репозиториев > Найдите и установите: "Arduino" (интеграция инструментов) и "Serial Monitor" (разное).
В CLion > Настройки > Поиск > введите "MinGW"
В среде выберите «Использовать домашнюю страницу MinGW» и перейдите к папке MinGW («C:\MinGW»). Нажмите «Применить» и подождите, пока CLion найдет среду.
В меню "Файл" > "Закрыть проект".
Откройте любой файловый менеджер, перейдите в папку "c:\Users\name\ClionProjects\" и удалите только что созданный проект "без названия".
Откройте CLion, выберите "Новый скетч-проект Arduino"
В каталоге проекта > 'открыть cmakelists.txt' и настроить строки:
6: set board version 7: set port (you can find out port# from the Arduino IDE) 8: set the path where you installed your Arduino libraries (Arduino sketch folder) set(${CMAKE_PROJECT_NAME}_BOARD uno) set(${CMAKE_PROJECT_NAME}_PORT COM3) LINK_DIRECTORIES(c:\\ARDUINO\\libraries)В правом верхнем углу CLion рядом с зеленой кнопкой "Воспроизвести" выберите "Редактировать конфигурацию", слева выберите "Приложение" > "Загрузить" и установите:
-target: 'upload' -configuration: 'debug' -executable: the project nameзатем нажмите ОК.
В .ino-файле проекта напишите очень простой код (мигните).
Подключите Arduino Uno через USB и нажмите зеленую кнопку воспроизведения, чтобы загрузить скетч.
Чтобы запустить последовательный монитор:
- В левом нижнем углу главного окна CLion щелкните вкладку "Монитор последовательного порта" (в "кнопках инструментов").
- Нажмите значок гаечного ключа, чтобы настроить порт и скорость передачи данных.
- В верхней части значка гаечного ключа нажмите синий значок подключения.
- Если значения не отображаются "правильно", нажмите белый значок "переключиться на шестнадцатеричный" (справа от гаечного ключа).
- Перед загрузкой скетча отключите последовательный монитор.
Чтобы CLion правильно находил библиотеки, убедитесь, что для папки lib используется то же имя, что и для файла '.h'. пример: для DallasTemperature.h используйте имя папки DallasTemperature. После добавления новых библиотек #inlcude щелкните правой кнопкой мыши папку "Внешние библиотеки" и выберите "Обновить проект cmake".
Вы можете выполнить дополнительную настройку в настройках CLion, например: тема, цвета, размер текста и т. д.
Кроме того, вы можете настроить несколько удобных "живых шаблонов", например:
serialprintln,digitalwrite,pinmode,переключательи т. д. для повышения производительности.
Это очень хороший туториал, чувак, большое спасибо, но, к сожалению, я использую linux (. Вместо mingw что мне установить?, @Kvach
Извините, я не использую линукс, понятия не имею об этом., @Wanek T
@Kvach вам нужно будет установить cmake, gcc, git., @zoonman
Спасибо! Это лучший способ сделать это для окон, @tcallred
В магазине плагинов Clion Plugins нет плагина Arduino. Возможно, он устарел., @zhekaus
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
- устаревшее преобразование из строковой константы в 'char*'
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Разница между print() и println()
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
Что вы подразумеваете под автодополнением Arduino?, @Avamander
[смотрите здесь](https://habrastorage.org/files/198/07e/6fc/19807e6fc0df47a3a5019a5ea42d46a8.png), @Kvach
Он не может автозаполнять то, о чем не знает. Вы правильно установили все библиотеки в соответствии с тем, что требует подключаемый модуль? (Попробуйте скомпилировать пример Blink, входящий в состав Arduino IDE, вы получите какие-либо ошибки?), @Avamander
Если вы объясните, как это сделать, я сделаю это., @Kvach
Для тех, кто читает это сейчас, у Jetbrains есть [очень подробный пост в блоге о том, как это сделать](https://blog.jetbrains.com/clion/2020/08/arduino-from-hobby-to-prof-p1/), @MDMoore313