Ошибка компиляции в Arduino

13-12-2020, 16:31 3 комментариев
Даже опытные программисты-«ардуинщики» могут столкнуться с ошибками компиляции. Исправить их не сложно, а вот найти порой не так просто. Мы решили рассказать сегодня в деталях, какие системные ошибки чаще возникают на различных платах Ардуино, как их исправить и по возможности избежать. 

Для начала рассмотрим базовые, так называемые синтаксические ошибки. Они встречаются чаще всего у новичков, но и опытные электронщики с ними точно знакомы не понаслышке. Искать их обычно супер-просто – в Arduino IDE некорректный синтаксис выделяется построчно (таким образом значительно легче отыскать неточность в кодах). Обычно это: отсутствие скобки в конце команды, пропуск этой самой служебной команды или слова, нехватка важных функций, неправильное их написание и т.д.

Для быстрого поиска ошибки советуем рассмотреть строку-подсказку. Ничего не помогло? Тогда для вас наша подборка наиболее распространенных синтаксических ошибок:
  • Такое сообщение указывает на то, что вы забыли открыть фугурную скобку; 
  • “expected initializer before ‘}’ token” - наоборот, забыли ее закрыть;
  • “undefined reference to “setup” - удалена либо изменена процедура “setup”;
  • undefined reference to “loop” – проблема с опцией loop (ненароком изменили, удалили);
  • Тут говорится о том, что в прошивке найдены слова, написанные неверно (текст, который не должен считаться программным, все же читается средой IDE).

С синтаксисом все понятно – вставляем пропущенные символы, убираем лишние знаки, возвращаем функции по умолчанию.
Напомним, в среде разработки Ардуино IDE можно заливать скетчи для различных микроконтроллеров. По умолчанию обычно указана плата Genuino Uno. Если вы работаете с Mega, следует выбрать именно эту платформу (меню «Сервис»), иначе вас ожидает неприятное предупреждение: “programmer is not responding”.

Ошибка компиляции для платы Arduino Uno чаще всего возникает из-за проблем, связанных с библиотеками, например, неправильно подключили, не то ПО инсталлировали. В этом случае вы увидите напоминание fatal error: … No such file or directory” (библиотека не перенесена в папку libraries) или redefinition of void setup”.


Обозначенная на скриншоте ERROR означает, что программирование завершилось некорректно (расшифровываем: внутренние проблемы с компилятором, не обновили версию IDE, сбой в библиотеке, неправильный выбор разрядности операционной системы и др.). 
Важно! Не забывайте использовать подсказки приложения – они очень помогают. Включаем тут: Файл -> Настройки -> "Показать подробный вывод во время компиляции".

Что делать, если произошла ошибка при загрузке скетча Arduino Nano. Тут могут быть те же причины, что мы описали выше. Особых отличий в компиляции плат нет, главное, их правильный выбор первоначально. Однако часто пользователи настраивают не те показатели скорости порта: 9600 вместо необходимых 57600 либо не имеют соответствующих драйверов на устройствах – все это нужно проверить и исправить!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня мы поговорим о том, как подключить ESP32 к Ардуино. Данная инструкция больше подходит для Windows девайсов (хотя и для других операционных систем типа...

Инструкция по установке скетчей в платы Arduino или аналоги....

Среда программирования Arduino IDE (Integrated Development Environment ) может функционировать не только на платформах Windows и Mac, но и на базе операционной...

Что делать в ситуации, когда плата Arduino Uno не появляется в диспетчере устройств на Windows и компьютер ее не видит? Эта проблема довольно распространенная,...

Прошить Arduino с помощью USBasp не сложно, но нужно понимать, для чего необходима данная процедура и как ее произвести в домашних условиях...

3 комментария
  1. Роман
    11 декабря 2021 21:58 Роман

    добрый день,выскакивает вот такая ошибка,Arduino: 1.8.16 (Windows Store 1.8.51.0) (Windows 10), Плата:"Arduino Nano, ATmega328P"





















    WS2812_FX_buttonchange:8:10: fatal error: FastLED.h: No such file or directory

    #include "FastLED.h" // библиотека для работы с лентой

    ^~~~~~~~~~~

    compilation terminated.

    exit status 1

    FastLED.h: No such file or directory



    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    "Показать подробный вывод во время компиляции"

    replyОтветить
  2. Егор
    12 декабря 2021 21:44 Егор

    Роман, надо скачать библиотеку указанную выше

    replyОтветить
  3. Даниил
    15 декабря 2021 22:16 Даниил

    Здравствуйте, возникла вот такая ошибка:
    Arduino: 1.8.16 (Windows 10), Плата:"Arduino Nano, ATmega328P"

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe2

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe2

    Problem uploading to board. See https://support.arduino.cc/hc/en-us/sections/360003198300 for suggestions.



    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    "Показать подробный вывод во время компиляции"

    replyОтветить
Оставить комментарий