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... а затем в верхнем левом углу открытых окон выбрать "обновляемый" в разделе "Тип". Затем выберите элементы в списке и нажмите "Обновить" справа.
Я не уверен, что это решит все проблемы, но, по крайней мере, решила мою проблему.