Arduino ide ошибка при загрузке

Произошла ошибка при загрузке скетча на ардуино нано.

Offline

Зарегистрирован: 28.03.2018

Мое Ардуино нано постоянно выдает ошибку при загрузке скетча, даже скопированного с интернета.

Вот текст ошибки:

Скетч использует 1906 байт (6%) памяти устройства. Всего доступно 30720 байт.

Глобальные переменные используют 185 байт (9%) динамической памяти, оставляя 1863 байт для локальных переменных. Максимум: 2048 байт.

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

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

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

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

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

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

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

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

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

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

Произошла ошибка при загрузке скетча

Пожалуйста помогите, я новичок.

СОДЕРЖАНИЕ ►

  • Произошла ошибка при загрузке скетча в Ардуино
    • programmer is not responding
    • a function-definition is not allowed arduino ошибка
    • expected initializer before ‘}’ token arduino ошибка
    • ‘что-то’ was not declared in this scope arduino ошибка
    • No such file or directory arduino ошибка
  • Compilation error: Missing FQBN (Fully Qualified Board Name)

Ошибки компиляции Arduino IDE возникают при проверке или загрузке скетча в плату, если код программы содержит ошибки, компилятор не может найти библиотеки или переменные. На самом деле, сообщение об ошибке при загрузке скетча связано с невнимательностью самого программиста. Рассмотрим в этой статье все возможные ошибки компиляции для платы Ардуино UNO R3, NANO, MEGA и пути их решения.

Произошла ошибка при загрузке скетча Ардуино

Самые простые ошибки возникают у новичков, кто только начинает разбираться с языком программирования Ардуино и делает первые попытки загрузить скетч. Если вы не нашли решение своей проблемы в статье, то напишите свой вопрос в комментариях к этой записи и мы поможем решить вашу проблему с загрузкой (бесплатно!).

avrdude: stk500_recv(): programmer is not responding

Что делать в этом случае? Первым делом обратите внимание какую плату вы используете и к какому порту она подключена (смотри на скриншоте в правом нижнем углу). Необходимо сообщить Arduino IDE, какая плата используется и к какому порту она подключена. Если вы загружаете скетч в Ардуино Nano V3, но при этом в настройках указана плата Uno или Mega 2560, то вы увидите ошибку, как на скриншоте ниже.

Ошибка: programmer is not responding

Ошибка Ардуино: programmer is not responding

Такая же ошибка будет возникать, если вы не укажите порт к которому подключена плата (это может быть любой COM-порт, кроме COM1). В обоих случаях вы получите сообщение — плата не отвечает (programmer is not responding). Для исправления ошибки надо на панели инструментов Arduino IDE в меню «Сервис» выбрать нужную плату и там же, через «Сервис» → «Последовательный порт» выбрать порт «COM7».

a function-definition is not allowed here before ‘{‘ token

Это значит, что в скетче вы забыли где-то закрыть фигурную скобку. Синтаксические ошибки IDE тоже распространены и связаны они просто с невнимательностью. Такие проблемы легко решаются, так как Arduino IDE даст вам подсказку, стараясь отметить номер строки, где обнаружена ошибка. На скриншоте видно, что строка с ошибкой подсвечена, а в нижнем левом углу приложения указан номер строки.

Ошибка: a function-definition is not allowed

Ошибка: a function-definition is not allowed here before ‘{‘ token

expected initializer before ‘}’ token   expected ‘;’ before ‘}’ token

Сообщение expected initializer before ‘}’ token говорит о том, что вы, наоборот где-то забыли открыть фигурную скобку. Arduino IDE даст вам подсказку, но если скетч довольно большой, то вам придется набраться терпения, чтобы найти неточность в коде. Ошибка при компиляции программы: expected ‘;’ before ‘}’ token говорит о том, что вы забыли поставить точку с запятой в конце командной строки.

‘что-то’ was not declared in this scope

Что за ошибка? Arduino IDE обнаружила в скетче слова, не являющиеся служебными или не были объявлены, как переменные. Например, вы забыли продекларировать переменную или задали переменную ‘DATA’, а затем по невнимательности используете ‘DAT’, которая не была продекларирована. Ошибка was not declared in this scope возникает при появлении в скетче случайных или лишних символов.

Ошибка Ардуино: was not declared in this scope

Ошибка Ардуино: was not declared in this scope

Например, на скриншоте выделено, что программист забыл продекларировать переменную ‘x’, а также неправильно написал функцию ‘analogRead’. Такая ошибка может возникнуть, если вы забудете поставить комментарий, написали функцию с ошибкой и т.д. Все ошибки также будут подсвечены, а при нескольких ошибках в скетче, сначала будет предложено исправить первую ошибку, расположенную выше.

exit status 1 ошибка компиляции для платы Arduino

Данная ошибка возникает, если вы подключаете в скетче библиотеку, которую не установили в папку libraries. Например, не установлена библиотека ИК приемника Ардуино: fatal error: IRremote.h: No such file or directory. Как исправить ошибку? Скачайте нужную библиотеку и распакуйте архив в папку C:Program FilesArduinolibraries. Если библиотека установлена, то попробуйте скачать и заменить библиотеку на новую.

exit status 1 Ошибка компиляции для Arduino Nano

exit status 1 Ошибка компиляции для платы Arduino Nano

Довольно часто у новичков выходит exit status 1 ошибка компиляции для платы arduino uno /genuino uno. Причин данного сообщения при загрузке скетча в плату Arduino Mega или Uno может быть огромное множество. Но все их легко исправить, достаточно внимательно перепроверить код программы. Если в этом обзоре вы не нашли решение своей проблемы, то напишите свой вопрос в комментариях к этой статье.

missing fqbn (fully qualified board name)

Ошибка возникает, если не была выбрана плата. Обратите внимание, что тип платы необходимо выбрать, даже если вы не загружаете, а, например, делаете компиляцию скетча. В Arduino IDE 2 вы можете использовать меню выбора:
— список плат, которые подключены и были идентифицированы Arduino IDE.
— или выбрать плату и порт вручную, без подключения микроконтроллера.


12-12-2020, 16:15
4 комментариев

Arduino не загружает скетч — одна из тех проблем, с которой часто сталкиваются как начинающие, так и «продвинутые» пользователи. Мы решили вам помочь и собрали основные варианты решения этой ошибки в одной информационной статье. Надеемся, она вам поможет.

В целом выделяют несколько ситуаций, когда выдается сбой при программировании:

  1. Программное обеспечение, т.е. Arduino IDE не может найти указанный файл. Выдается ошибка No such file or directory. Решить ее очень просто – следует перенести либо установить библиотеку в папку libraries – это важно (много раз об этом писали). Не забывайте затем перезагрузить ПО. Не рекомендуем выкладывать их в папку C:Program Files (x86)Arduinolibraries. Она при обновлении системы может быть очищена.
  2. Загрузка кодов зависает, выдается приблизительно такая ошибка: 

В этом случае решений может быть несколько. Для начала попробуйте проверить тип платы, которую вы выбрали. Если скетч создан для Nano, непременно переключите контроллер именно на него – стандартный UNO вам не подойдет. Второй шаг – проверяем выставленные параметры скорости (те же Уно и Нано функционируют в пределах 15200 бит). Прописать эти данные следует в конфигурациях приложения. Идем по такому пути:

  • Заходим в наше ПО, ищем папку hardwarearduinoavr > открываем файл boards.txt в текстовом формате, например, Блокноте на Windows.
  • Находим строку: 

В ней выставлены не те скоростные значения, что нам необходимы, но не спешите их менять – контроллеры бывают разные (как китайские, так и оригинальные). Лучше не удалять цифры, а добавить еще один микроконтроллер УНО. Заполняем файл:

uno2.name=Uno 57600
 
uno2.vid.0=0x2341
uno2.pid.0=0x0043
uno2.vid.1=0x2341
uno2.pid.1=0x0001
uno2.vid.2=0x2A03
uno2.pid.2=0x0043
uno2.vid.3=0x2341
uno2.pid.3=0x0243
 
uno2.upload.tool=avrdude
uno2.upload.protocol=arduino
uno2.upload.maximum_size=32256
uno2.upload.maximum_data_size=2048
uno2.upload.speed=57600
 
uno2.bootloader.tool=avrdude
uno2.bootloader.low_fuses=0xFF
uno2.bootloader.high_fuses=0xDE
uno2.bootloader.extended_fuses=0xFD
uno2.bootloader.unlock_bits=0x3F
uno2.bootloader.lock_bits=0x0F
uno2.bootloader.file=optiboot/optiboot_atmega328.hex
 
uno2.build.mcu=atmega328p
uno2.build.f_cpu=16000000L
uno2.build.board=AVR_UNO
uno2.build.core=arduino
uno2.build.variant=standard
 
##############################################################
 
nano2.name=Nano 57600
 
nano2.upload.tool=avrdude
nano2.upload.protocol=arduino
 
nano2.bootloader.tool=avrdude
nano2.bootloader.unlock_bits=0x3F
nano2.bootloader.lock_bits=0x0F
 
nano2.build.f_cpu=16000000L
nano2.build.board=AVR_NANO
nano2.build.core=arduino
nano2.build.variant=eightanaloginputs
 
## Arduino Nano w/ ATmega328P
## --------------------------
nano2.menu.cpu.atmega328=ATmega328P
 
nano2.menu.cpu.atmega328.upload.maximum_size=30720
nano2.menu.cpu.atmega328.upload.maximum_data_size=2048
nano2.menu.cpu.atmega328.upload.speed=57600
 
nano2.menu.cpu.atmega328.bootloader.low_fuses=0xFF
nano2.menu.cpu.atmega328.bootloader.high_fuses=0xDA
nano2.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
nano2.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex

Теперь у нас 2 устройства, в идеале все должно заработать!

Как видите, если скетч не загружается в Ардуино, можно самостоятельно решить проблему и продолжать проектирование. На этом прощаемся с вами! Всем успешной компиляции и не забывайте следить за нашим интернет-сайтом!

Что делать?

С такой проблемой сталкиваются довольно
часто. Причем даже те, кто уже имел неплохой опыт программирования ардуино.

Понятное дело, что первое, что приходит на ум
заказчику – ошибка в моей программе, за что поначалу мне было немного обидно.

Существует две наиболее частые ситуации:

  1. Arduino IDE ругается, что не может найти указанный файл (No such file or directory). Это говорит о том, что нужно установить какую-то библиотеку. А со своими программами я всегда поставляю все необходимые библиотеки.
  2. Загрузка скетча подвисает, а потом выдает ошибку:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding

1я ситуация разобрана здесь.

Вторая ситуация связана либо с тем, что плата выбрано неверно, либо выбранная плата имеет в себе старый загрузчик, который не желает работать на той скорости, на которой хочет IDE.

Дело в том, что Arduino IDE предполагает, что все современные Nano и UNO должны работать со скоростью
15200 бит в секунду. А китайские клоны до сих пор довольно часто работают со
скоростью в 2 раза меньше – 57600.

Решить эту проблему можно двумя способами:

  1. Обновить загрузчик на плате
  2. Добавить плату со старым загрузчиком в конфигурацию Arduino IDE

Лично мне кажется, что второй способ – более
универсальный и простой. Поэтому его и опишу.

Итак, зайдите на компьютере в папку, в которую
установлена Arduino IDE. Лично у меня это, как
и большинства, “C:Program Files (x86)Arduino”, если Вы на Windows.

Теперь откройте папку hardwarearduinoavr и
найдите файл boards.txt

В этом файле и находятся все платы, которые Вы выбираете через меню «Инструменты > Плата…»

Выбор платы из списка

Откройте этот файл в текстовом редакторе,
например, в блокноте.

Найдите в нем строчку uno.upload.speed

Настройки плат ардуино

Мы видим, что скорость загрузки равно 115200.
Но у нас плата, которая хочет 57600!

Можно, конечно, поменять на 115200 на 57600,
но тогда, к сожалению, мы не сможет загружать скетчи на плату с новым загрузчиком.

Выход, получается, один – добавить плату,
скажем, UNO2,
на случай скорости 57600.

Предлагаю просто вставить себе мои настройки и сохранить файл:

uno2.name=Uno 57600

uno2.vid.0=0x2341
uno2.pid.0=0x0043
uno2.vid.1=0x2341
uno2.pid.1=0x0001
uno2.vid.2=0x2A03
uno2.pid.2=0x0043
uno2.vid.3=0x2341
uno2.pid.3=0x0243

uno2.upload.tool=avrdude
uno2.upload.protocol=arduino
uno2.upload.maximum_size=32256
uno2.upload.maximum_data_size=2048
uno2.upload.speed=57600

uno2.bootloader.tool=avrdude
uno2.bootloader.low_fuses=0xFF
uno2.bootloader.high_fuses=0xDE
uno2.bootloader.extended_fuses=0xFD
uno2.bootloader.unlock_bits=0x3F
uno2.bootloader.lock_bits=0x0F
uno2.bootloader.file=optiboot/optiboot_atmega328.hex

uno2.build.mcu=atmega328p
uno2.build.f_cpu=16000000L
uno2.build.board=AVR_UNO
uno2.build.core=arduino
uno2.build.variant=standard

##############################################################

nano2.name=Nano 57600

nano2.upload.tool=avrdude
nano2.upload.protocol=arduino

nano2.bootloader.tool=avrdude
nano2.bootloader.unlock_bits=0x3F
nano2.bootloader.lock_bits=0x0F

nano2.build.f_cpu=16000000L
nano2.build.board=AVR_NANO
nano2.build.core=arduino
nano2.build.variant=eightanaloginputs

## Arduino Nano w/ ATmega328P
## --------------------------
nano2.menu.cpu.atmega328=ATmega328P

nano2.menu.cpu.atmega328.upload.maximum_size=30720
nano2.menu.cpu.atmega328.upload.maximum_data_size=2048
nano2.menu.cpu.atmega328.upload.speed=57600

nano2.menu.cpu.atmega328.bootloader.low_fuses=0xFF
nano2.menu.cpu.atmega328.bootloader.high_fuses=0xDA
nano2.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
nano2.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex

Теперь у вас две платы UNO и две Nano:

Выбор платы ардуино в Arduino IDE

Удачи!

Совершенно неожиданно у меня возникла проблема с добавлением нового скетча в Arduino. Arduino IDE стал зависать на моменте загрузки скетч в микроконтроллер на долгое время и потом выдавать множественные ошибки вида:

Код: Выделить всё

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
.....
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x45

У меня была китайская Arduino Uno rev3, с которой я работал уже полгода без проблем. Покупал тут в составе набора для изучения (Starter Kit), и ей даже китайский драйвер CH340 не понадобился, заработала с фирменным из состава IDE. И внезапная ошибка «avrdude: stk500_recv(): programmer is not responding» меня — неопытного новичка, немного напугала. Четких инструкций для решения я не смог найти: либо старая версия IDE с несуществующими командами, либо не мой случай. Но вот, что случилось у меня. У китайцев для прошивки контролеров без USB (типа Arduino Mini) я прикупил программатора USBasp, который надо подключать к разъему ICSP на плате и немного «поиграл» с ним для проверки, заливая программу в большую Arduino Uno.

Разъемов, кстати, две штуки на плате, еще один для прошивки самого контролера USB интерфейса. Но нам это не нужно.
Изображение
И я так понял: при использовании программатора напрямую в ATmega заливается только сам скомпилированный код HEX, что позволяет сэкономить немного памяти для больших программ. А для работы через USB нужен еще и загрузчик Bootloader, который стирается программатором. И поэтому его нужно восстановить. Отключаем USB, подключаем назад USBasp и выбираем пункт Burn Bootloader, очень быстро внизу появится сообщение, что загрузчик успешно загружен и все! Можно снова подключаться по USB и работать как раньше.

Обратите внимание, что у меня выбран тип программатора USBasp (programmer), тип платы Arduino/Genuino Uno, а виртуального порта подключения нет, потому что USB отключен.

А вот если в меню выбрать пункт Export compiled Binary, то в папке проекта мы получи два файла:

  • test.ino.with_bootloader.standard.hex
  • test.ino.standard.hex

Которые будут отличаться небольшим куском кода, добавленным в конце.

Эти файлы нужно прошивать опять же программатором, использую специальные программы. Например, тот же AVRDude, название которого мы видим в ошибке.
Изображение
Но это уже другая история, свою проблему я решил, чего и вам желаю.

Вот нашел такое упоминание этого процесса в разделе про доступную память устройства.

https://arduinomaster.ru/platy-arduino/ … duino-uno/

Когда вы прошиваете контроллер своим скетчем, он записывается именно сюда. 2кБ из данного пула памяти отводится на bootloader- программу, которая занимается инициализацией системы, загрузки через USB и запуска скетча.

Драйвер USBasp-win-driver-x86-x64-v3.0.7.zip для своего китайского USBasp программатора я скачал отсюда USBasp AVR Programmer, Program Atmel AVR microcontrollers:

https://protostack.com.au/shop/accessor … -downloads

Ставил его на Windows 7 SP1 x64, устройство в системе появилось с названием libusbK Usb Devices. Драйверы есть еще у Zadig, на его сайт ссылается сам Thomas Fischl.

Понравилась статья? Поделить с друзьями:
  • Arctic cat z1 ошибка ccu
  • Arctic cat 700 ошибка efi
  • Archive data corrupted decompression fails вернул код ошибки 1
  • Archicad произошла ошибка при выполнении последней операции teamwork
  • Archicad aclibrarymanagement ошибка при запуске