Как плата Arduino разделяет USB-трафик (загрузка кода и связь)?

Новичок в программировании Arduino здесь (изучение программирования Arduino в ожидании прибытия моей платы).

Я пытаюсь понять, как плата Arduino может делать эти две вещи, используя только один USB - порт:

  1. получение скомпилированного кода с ПК (из Arduino IDE: Sketch > Upload)
  2. последовательная связь между приложением ПК и платой Arduino (например, наше собственное приложение Windows взаимодействует с платой Arduino)

Я просто не могу понять, как он различает эти два случая. Я использовал платы с 2 USB-портами: один предназначен для программирования (загрузки кода), а другой-для последовательной связи между любым приложением ПК и платой.

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

, 👍0

Обсуждение

https://learn.adafruit.com/bootloader-basics?view=all#types-of-bootloaders, @gre_gor


1 ответ


3

Он ничего не различает. Все зависит от того, какой код работает на плате в любой момент.

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

,