Avrdude: stk500v2_ReceiveMessage(): таймаут

Это основная ошибка, которую я получаю, когда пытаюсь запустить программу Arduino. Полный список ошибок выглядит следующим образом:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

Мой код выглядит следующим образом:

int led=13;
void setup()
{
pinMode(13,OUTPUT);
}
void loop()
{
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}

Я пробовал обновлять драйверы (они полностью обновлены) и загрузка некоторых программ. У меня Windows 7, а мой arduino - MEGA 2560. Он отображается в диспетчере устройств, и все мои подключения верны. Загорается зеленый индикатор PWR, а также мигающий свет L. Когда я обновляю, индикаторы RX и TX мигают. Я пробовал почти все в Интернете. В чем проблема?

Ответы

Ответ 1

Сообщение об ошибке в основном означает, что программист не может связаться с загрузчиком на устройстве; код, который вы пытаетесь загрузить, не влияет на проблему.

В чем причины этого могут быть многочисленными и разнообразными, некоторые возможные проблемы:

  • Связь UART

    • Мигает, так что, надеюсь, вы не используете неправильный порт. Возможно, стоит проверить еще раз, иногда USB-устройства USB устанавливаются на странные номера портов.

    • Подключите TX к RX (и, если это возможно, отключите их от AVR), затем откройте терминал на COM-порту, вы должны увидеть символы, эхом, если вы их наберете. Если вы этого не сделаете, что-то не так, как чип, это может быть чип для связи (я думаю, что Arduino 2560 по какой-то причине использует вторичный AVR вместо FTDI, так что это может быть нарушено, либо его программное обеспечение, либо аппаратное обеспечение)

  • Загрузитель ATmega *

    • По какой-то причине AVR не запускает загрузчик. Если программист не перезагружает микроконтроллер перед попыткой подключения, это может быть причиной. Попробуйте reset AVR (нажмите и отпустите кнопку), пока программист пытается подключиться. Иногда программное обеспечение, работающее в жестком цикле, не позволяет подключаться загрузчику.

    • Запрет на то, что предохранители могут быть испорчены или код стерт. Вам нужно будет перепрограммировать загрузчик и соответствующие предохранители, также см. Соответствующую информационную страницу для вашего устройства.

  • Только Arduino Mega 2560: программное обеспечение ATmega8U/16U

    • Возможно, не будет работать и потребуется перепрограммирование. См. Раздел "Программирование" на информационной странице, вам понадобится программное обеспечение Firmware и совместимое с Atmel DFU (обновление прошивки устройства) на вашем компьютере, чтобы перепроверить мишени.
  • Аппаратное повреждение платы, AVR (-ов) или чипа FTDI

    • Ты хочешь; нужен новый чип.

Отметьте это сообщение форума за несколько идей.

Ответ 2

Я получил эту ошибку, потому что я не указал правильного программиста в командной строке avrdude. Вы должны указать "-c arduino", если вы используете плату Arduino.

В этом примере команда считывает состояние hfuse:

avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h

Ответ 3

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

3 метки помех подряд заставляют загрузчик Mega 2560 перейти в режим мониторинга, из которого он не может завершить программирование.

"!!!" < --- разбивает загрузчик Mega 2560.

Чтобы исправить, отключите USB-порт Arduino до reset COM-порта, а затем перекомпилируйте только два восклицательных знака или пробелы между ними или что-то еще. Затем снова подключите Arduino и программу, как обычно.

Да, это бит меня вчера и сегодня я выследил преступника. Вот ссылка с дополнительной информацией: http://forum.arduino.cc/index.php?topic=132595.0

Ответ 4

Это не решение для исправления, но оно может помочь другим. В отличие от Ник сказал мне, что это связано с кодом в моей программе. У меня есть мега-модель ADK. Эта проблема была привязана к оператору switch для обработки и анализа возвращаемого байта [] из подключения usb к Android. Это очень странно, потому что он собирался идеально каждый раз, но потерпел неудачу, как заявлял ОП. Я прокомментировал это, и все получилось хорошо.

Ответ 5

Я запускал этот код из настройки Arduino, получил такое же сообщение об ошибке после изменения последовательный порт для COM13
Перейдите к опции
инструмент → последовательный порт → COM132

Ответ 6

Если вы используете командную строку ino:

ino upload

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

Ответ 7

Моя aurdino mega 2560 вернулась к той же ошибке. Похоже, проблема кроется в китайских клонах. Проблема решена нажатием кнопки reset непосредственно перед загрузкой, как показано в следующем видео.

https://www.youtube.com/watch?v=tAzjO4v7oF4&list=LLDn5ewJDzz53IiwWmZTgQnQ&index=1

Ответ 8

Я подключился к порту USB непосредственно в своем ноутбуке, и проблема с тайм-аутом была решена.

Раньше пытался репликатор портов, но он даже не распознал arduino, поэтому я выбрал неправильный порт - в результате получилось сообщение о тайм-ауте.

Поэтому убедитесь, что она видна вашей ОС.

Ответ 9

К моему скромному пониманию эта ошибка возникает при разных сценариях

  • вы выбрали неправильный порт или у вас его нет. перейдите в tools > ports ans и выберите com-порт с вашим Arduino, подключенным к
  • вы выбрали неправильную плату. перейдите на инструменты > доска и найдите правую панель.
  • У вас есть одна из этих реплик arduino или у вас нет загрузочного загрузчика, установленного на микроконтроллере. Я не знаю, как это решить! если вы знаете, отредактируйте мой пост и добавьте инструкции.
  • (только для окон) у вас нет нужных драйверов. вам необходимо обновить их вручную.
  • иногда, когда у вас есть провода, подключенные к плате, это происходит. вам необходимо отделить плату от любых макетов или проводов, которые вы установили, и попробуйте загрузить снова. Кажется, что контакты 0 (RX) и 1 (TX), которые могут использоваться для последовательной связи, являются проблематичными и лучше быть свободными при загрузке кода.

  • Когда-нибудь сидит случайным образом без каких-либо особых причин!

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

То же самое случилось со мной, и ни одно из вышеперечисленных решений не работало. Случилось так, что я использовал Arduino uno, и все было хорошо, но когда я обрушился на Arduino Mega 2560, независимо от того, какой эскиз я пытался загрузить, я получил ошибку:

avrdude: stk500v2_ReceiveMessage(): timeout

И это было только на одном из моих компьютеров с Windows, а другой был просто из коробки.

Решение:

Что я решил решить, так это перейти к инструментам > доски > Boards Manager... а затем в верхнем левом углу открытых окон выбрать "обновляемый" в разделе "Тип". Затем выберите элементы в списке и нажмите "Обновить" справа.

Я не уверен, что это решит все проблемы, но, по крайней мере, решила мою проблему.