Подключая Arduino и обработку, как узнать, какой COM читать?

Я использую обработку для чтения данных из последовательного порта, которые отправляет Arduino. Когда я захожу в диспетчер устройств, он показывает, что Arduino находится в COM 4, но для того, чтобы обработка могла читать из Arduino, мне нужно ввести COM, равный 2:

String portName = Serial.list()[2]

Почему числа не совпадают?

Спасибо!

, 👍0


1 ответ


1

Потому что эти два числа — совершенно разные типы чисел.

Цифра 4 для COM4 означает, что это четвертый последовательный коммуникационный порт, как определено, по которому порты ввода/вывода используются для связи с реальным оборудованием. То есть у вас будет COM1, COM2, COM3 и так далее. Неважно, есть ли там оборудование на самом деле или что-то подключено — названия одинаковы.

Число 2 в Serial.list()[2] означает, что вы выбираете третий (!) элемент массива, возвращаемого Serial.list(). Т.е. в этом случае мы считаем с 0 вместо 1.

В дополнение к этому, Serial.list() возвращает только доступные порты. То есть, если оборудование для COM3 не установлено физически, оно не будет возвращено Serial.list(). Также не гарантируется, что список будет отсортирован в каком-либо определенном порядке.

Вам нужно будет распечатать содержимое массива, возвращаемого Serial.list(), и позволить пользователю выбрать, какой из портов он хочет использовать.

,