Файлы типа /dev/bus/usb/001/28
создаются основным драйвером USB в системе Linux (см. usb / core / devio.c ).Этот драйвер ничего не знает о последовательных портах, он просто знает о USB.Таким образом, команды, которые вы можете отправить в этот файл, такие как «прочитать 32 байта из конечной точки 2» или «отправить 11 байтов в конечную точку 3», и вы бы использовали библиотеку, такую как libusb или libusbp, для отправки этих команд.
Тем не менее, я не рекомендую делать это, если вы можете добиться того же, используя фактические драйверы последовательного порта, которые создают узлы устройства в форме /dev/tty*
, а также создают символические ссылки в /dev/serial/by-id
.Возможно, вы сможете читать и писать с этих устройств, используя оболочку, как вы это делали, но я часто обнаруживаю, что она работает не так, как я ожидал.Вы можете использовать программу последовательного терминала, такую как PuTTY или screen
, для отправки и получения байтов ASCII через последовательный порт (т.е. вы вводите символы для их отправки).Вы также можете написать C-программу для открытия порта, установки параметров ее последовательного порта с помощью termios , а затем чтения из и записи к этому.