КЛион + Ардуино
Пожалуйста, помогите мне настроить Clion + Arduino.
У Clion есть подключаемый модуль Arduino, который я установил. Вот некоторые инструкции на Github, но я совершенно не разбираюсь в cmake
и других вещах, о которых говорится в инструкциях. Раньше я использовал только Arduino IDE для своих простых проектов. Теперь в CLion я могу создавать проекты Arduino, но автодополнение не работает. На самом деле это работает, но делает это на настоящем C, а не на коде Arduino.
Пожалуйста, объясните для полного идиота, что мне нужно изменить, чтобы автозаполнение Arduino заработало.
@Kvach, 👍20
Обсуждение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
Я знаю, что это было задано давно, но, возможно, это будет кому-то полезно. Я новичок во всем этом, поэтому, если кто-то знает лучший способ сделать это, пожалуйста, поправьте меня. вот как я настроил 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
- 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