Что вызывает avrdude: stk500_getsync(): ошибка синхронизации (resp=0x4c)

Я пытаюсь запрограммировать arduino pro mini (версия 3.3v) через модуль bluetooth hc-05. Я получал сообщение об ошибке «avrdude: stk500_getsync(): не синхронизировано: resp=0x00 arduino». Есть много вопросов/ответов по этой ошибке, которая, если я не ошибаюсь, вызвана отсутствием связи между программатором и платой arduino.

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

avrdude: stk500_getsync(): не синхронизировано: resp=0x4c

Что это за ошибка? Есть ли где-нибудь список возможных ошибок, выдаваемых avrdude?


person DominicM    schedule 23.05.2014    source источник


Ответы (1)


Я могу ошибаться насчет точной ошибки, но недавно у меня была подобная проблема, вызванная включением сторожевого таймера, который неправильно обрабатывался моим загрузчиком, и он выдал мне похожее сообщение об ошибке. В моем случае это привело к тому, что мой код застрял в какой-то момент, что сделало невозможным загрузку нового кода; в других случаях — обычно, когда сторожевой таймер настроен менее чем на 2 секунды — это может привести к перезагрузке платы достаточно быстро, чтобы не позволить загрузчику полностью инициализироваться.

Чтобы решить эту проблему, я нашел два возможных подхода:

  1. Загрузите загрузчик еще раз — у меня не получилось, но у некоторых это получается. Я почти уверен, что сделал что-то не так.
  2. Подключите порт сброса к GND, загрузите новый код, и как только он перейдет от компиляции к загрузке, вы отключите провод. Это сработало для меня на Arduino Mega 2560.
person Guilherme Brunow    schedule 02.03.2015
comment
Я уже давно не использовал Arduino, но сторожевой таймер кажется мне знакомым, вполне возможно, что это было причиной. У меня больше не будет этой проблемы, так как я не собираюсь снова использовать сторожевые таймеры, поэтому не могу проверить, но это звучит правильно, и это решение сработало для вас, поэтому я принимаю ответ, спасибо. - person DominicM; 03.03.2015