Как плата Arduino разделяет USB-трафик (загрузка кода и связь)?
Новичок в программировании Arduino здесь (изучение программирования Arduino в ожидании прибытия моей платы).
Я пытаюсь понять, как плата Arduino может делать эти две вещи, используя только один USB - порт:
- получение скомпилированного кода с ПК (из Arduino IDE: Sketch > Upload)
- последовательная связь между приложением ПК и платой Arduino (например, наше собственное приложение Windows взаимодействует с платой Arduino)
Я просто не могу понять, как он различает эти два случая. Я использовал платы с 2 USB-портами: один предназначен для программирования (загрузки кода), а другой-для последовательной связи между любым приложением ПК и платой.
На мой взгляд, должен быть какой-то способ для Arduino определить, когда он мигает, и когда он используется в качестве обычного последовательного порта.
@, 👍0
Обсуждение1 ответ
Он ничего не различает. Все зависит от того, какой код работает на плате в любой момент.
При сбросе или включении питания запускается загрузчик. Он прослушивает загруженный код. Если он не получает сигнал загрузки с ПК после короткого таймаута, он начинает выполнять ваш код вместо этого.
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
- Первое программирование самодельной платы ATMega32U4
- Загрузчик работает только один раз с модулем usb для последовательного подключения
- Будет ли загрузчик обмениваться данными через TX0 / RX0
- Порт Arduino не обнаружен с помощью загрузчика / Я сломал плату?
- Первая настройка - отказ в доступе к usb-порту - ubuntu 14.04
- Как записать загрузчик?
https://learn.adafruit.com/bootloader-basics?view=all#types-of-bootloaders, @gre_gor