Сброс arduino nano после отключения tx/rx

Я знаю, иногда я веду себя немного глупо, и я не знаю, почему я на самом деле сделал это, но вот оно. У меня есть Arduino Nano, и я хочу, чтобы он использовал внешнее питание через порт Vin с использованием внешнего источника питания 12 В. Я думал, что это будет так же просто, как заменить источник питания USB на мой внешний источник питания 12 В на контакте Vin. Но ничего не работает, поэтому я немного покопался в проблеме и после многих попыток припаял контакты 25 и 26 FTDI или подключил контакты TX/RX к GND. Что касается этого последнего пункта, поскольку TX/RX все еще мигал после подключения к GND, я поместил в свою программу эти две строки, чтобы принудительно отключить TX/RX, и это моя ошибка:

digitalWrite(0,LOW);
digitalWrite(1,LOW);

А теперь какой сюрприз, я больше не могу загрузить программу в свой arduino nano, даже используя другой arduino для записи загрузчика. И я получаю это сообщение:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x2e
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x2c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x33
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x38
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x2e
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x33
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x31

Я хотел бы вернуться к своей заводской плате arduino nano и/или снова включить соединения TX/RX...

, 👍0

Обсуждение

это не проблема кода. если вы сбрасываете Nano, загрузчик работает в течение 2 секунд и имеет правильную настройку UART и не зависит от setup () вашего скетча. поэтому удалите провода с контактов RX и TX, @Juraj

Ничего не подключено к контактам RX и TX, @Hugo Vernier-Lambert


2 ответа


Лучший ответ:

0

После еще нескольких попыток что-то действительно сработало с повторной инициализацией контактов TX/RX, но я не знаю, почему на самом деле. Я подключил контакт RX к сбросу и загрузил пустой код в Arduino, после чего я снова смог загрузить любую программу в свой Arduino. Проблема решена, но вопрос в том, почему она решила проблему.

,

пожалуйста, не используйте «ответ», чтобы оставить комментарий, @jsotola

опубликуйте новый вопрос об этом ... включите скетч, который «сломал» arduino, @jsotola


0

Вы также можете сделать это: в среде IDE выберите "Файл:Настройки" и включите подробные выходные данные.

Нажмите & удерживайте сброс, который помещает все контакты ввода-вывода в режимы ввода, затем начните загрузку. Когда процесс компиляции покажет "компиляция завершена, использовано xxxxxx байт из 32xxx" или что-то подобное, отпустите кнопку Reset.

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

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

void setup();
void loop();

Это сработает.

,