Это основная ошибка, которую я получаю при попытке запустить мою программу 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. Я перепробовал почти все, что можно найти в Интернете. В чем проблема?
Сообщение об ошибке означает, что программатор не может связаться с загрузчиком устройства; код, который вы пытаетесь загрузить, не имеет никакого отношения к проблеме.
Причины могут быть многочисленными и разнообразными, некоторые возможные проблемы:
Мигание происходит, так что, надеюсь, вы не используете неправильный порт. Хотя, возможно, стоит проверить еще раз, иногда USB COM-устройства устанавливаются на странные номера портов.
Подключите TX к RX (и отсоедините их от AVR, если возможно), затем откройте терминал на COM-порту, вы должны увидеть символы, набранные эхом. Если вы не видите, что-то не так в потоке чипа, это может быть чип связи (я думаю, что Arduino 2560 использует вторичный AVR вместо FTDI по какой-то причине, так что это может быть нарушено, либо его программное или аппаратное обеспечение).
*
загрузчикAVR по какой-то причине не выполняет загрузчик. Если программатор не сбрасывает микро перед попыткой подключения, причина может быть в этом. Попробуйте сбросить AVR (нажмите и отпустите кнопку), пока программатор пытается подключиться. Иногда программное обеспечение, работающее в замкнутом цикле, не позволяет загрузчику подключиться.
В противном случае, возможно, перепутаны предохранители или стерся код. Вам потребуется перепрошивка загрузчика и правильные предохранители, см. соответствующую информационную страницу для вашего устройства.
*Может не работать и потребуется перепрограммирование. См. раздел Programming section on the info page, для перепрошивки цели вам понадобится прошивка и совместимое с Atmel программное обеспечение DFU (device firmware update) на вашем компьютере.
Посмотрите это сообщение на форуме, чтобы найти еще несколько идей.
Я получил эту ошибку, потому что не указал правильный программатор в командной строке avrdude. Вы должны указать "-c arduino", если вы используете плату Arduino.
Этот пример команды считывает состояние hfuse:
avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h
Это не совсем решение проблемы, но оно может помочь другим. В отличие от того, что сказал Ник, для меня это было связано с кодом в моей программе. У меня мега модель ADK. Проблема была связана с оператором switch для обработки и разбора возвращаемых byte[] из usb-соединения с Android. Это очень странно, потому что оно компилировалось идеально каждый раз, но не срабатывало, как указано в описании. Я закомментировал его, и все заработало нормально.