КЛион + Ардуино

Пожалуйста, помогите мне настроить Clion + Arduino.

У Clion есть подключаемый модуль Arduino, который я установил. Вот некоторые инструкции на Github, но я совершенно не разбираюсь в cmake и других вещах, о которых говорится в инструкциях. Раньше я использовал только Arduino IDE для своих простых проектов. Теперь в CLion я могу создавать проекты Arduino, но автодополнение не работает. На самом деле это работает, но делает это на настоящем C, а не на коде Arduino.

Пожалуйста, объясните для полного идиота, что мне нужно изменить, чтобы автозаполнение Arduino заработало.

, 👍20

Обсуждение

Что вы подразумеваете под автодополнением 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


2 ответа


25

Вместо использования какого-либо подключаемого модуля я использую 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


10

Я знаю, что это было задано давно, но, возможно, это будет кому-то полезно. Я новичок во всем этом, поэтому, если кто-то знает лучший способ сделать это, пожалуйста, поправьте меня. вот как я настроил CLion для Arduino (в Windows 10):

CLion 2016.1.3 + Arduino 1.6.9 + плагин

  1. Загрузите и установите официальную среду разработки Arduino IDE (1.6.9).

  2. Загрузите и установите MinGW в папку 'C:\MinGW'

  3. В MinGW установите: 'mingw32-base' и 'mingw32-gcc-g++'

  4. Загрузите и установите CLion.

  5. Создайте проект без названия, чтобы открыть CLion.

  6. В CLion > Настройки > Плагины > Обзор репозиториев > Найдите и установите: "Arduino" (интеграция инструментов) и "Serial Monitor" (разное).

  7. В CLion > Настройки > Поиск > введите "MinGW"

  8. В среде выберите «Использовать домашнюю страницу MinGW» и перейдите к папке MinGW («C:\MinGW»). Нажмите «Применить» и подождите, пока CLion найдет среду.

  9. В меню "Файл" > "Закрыть проект".

  10. Откройте любой файловый менеджер, перейдите в папку "c:\Users\name\ClionProjects\" и удалите только что созданный проект "без названия".

  11. Откройте CLion, выберите "Новый скетч-проект Arduino"

  12. В каталоге проекта > 'открыть 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)
    
  13. В правом верхнем углу CLion рядом с зеленой кнопкой "Воспроизвести" выберите "Редактировать конфигурацию", слева выберите "Приложение" > "Загрузить" и установите:

    -target: 'upload'
    -configuration: 'debug'
    -executable: the project name
    

    затем нажмите ОК.

  14. В .ino-файле проекта напишите очень простой код (мигните).

  15. Подключите Arduino Uno через USB и нажмите зеленую кнопку воспроизведения, чтобы загрузить скетч.

  16. Чтобы запустить последовательный монитор:

    • В левом нижнем углу главного окна CLion щелкните вкладку "Монитор последовательного порта" (в "кнопках инструментов").
    • Нажмите значок гаечного ключа, чтобы настроить порт и скорость передачи данных.
    • В верхней части значка гаечного ключа нажмите синий значок подключения.
    • Если значения не отображаются "правильно", нажмите белый значок "переключиться на шестнадцатеричный" (справа от гаечного ключа).
    • Перед загрузкой скетча отключите последовательный монитор.
  17. Чтобы CLion правильно находил библиотеки, убедитесь, что для папки lib используется то же имя, что и для файла '.h'. пример: для DallasTemperature.h используйте имя папки DallasTemperature. После добавления новых библиотек #inlcude щелкните правой кнопкой мыши папку "Внешние библиотеки" и выберите "Обновить проект cmake".

  18. Вы можете выполнить дополнительную настройку в настройках CLion, например: тема, цвета, размер текста и т. д.

  19. Кроме того, вы можете настроить несколько удобных "живых шаблонов", например: serialprintln, digitalwrite, pinmode, переключатель и т. д. для повышения производительности.

,

Это очень хороший туториал, чувак, большое спасибо, но, к сожалению, я использую linux (. Вместо mingw что мне установить?, @Kvach

Извините, я не использую линукс, понятия не имею об этом., @Wanek T

@Kvach вам нужно будет установить cmake, gcc, git., @zoonman

Спасибо! Это лучший способ сделать это для окон, @tcallred