libusb-1.0 cdc example

Nov 01, 2018 21:28

Если надо закинуть через usb что-нибудь на микроконтроллер с usb-cdc интерфейсом и надо было сделать ещё вчера, то быстрее всего оказалось с libusb. Здесь, вменяемый и вполне рабочий пример на C, доброго человека. Попробовал с "коробочным" usb-cdc интерфейсом, сгенерированым stm32cube, работает. Не самый элегантный способ, зато быстро ( Read more... )

prog, mcu

Leave a comment

Comments 14

mbr November 1 2018, 20:19:23 UTC
На кой черт libusb то в cdc? Оно генерирует вполне вменяемый ttyUSBx под линуксом из коробки и после подсовывания правильного inf ком-порт под виндой.

Reply

electrodyssey November 1 2018, 20:45:29 UTC
Для разнообразия скорее, чем для удобства. Единственный плюс перед ttyUSB / ttyACM, то что на системах с множеством открытых серийных портов не надо искать какой именно твой, libusb находит по vendor id/ product id нужный (если конечно не повтыкать однотипных). Интересен тем что baud rate и прочие прибамбасы можно опустить и без них всё работает.
Неудобен тем что приходится выгружать драйвер character device, который подгружает ядро. Т.е. зашёл через libusb, выгрузил драйвер ttyACM для устройства (иначе lib работать не будет) и потом пока устройство в порт заново не вставишь, ACM уже не появится.
Изврат конечно ) но весело, я только сейчас о нём узнал и решил опробовать

Кстати, где-нибудь есть в открытом виде страница где тусуются пользователи rexos и где можно задать (тупые) вопросы?

Reply

mbr November 1 2018, 20:59:15 UTC
ttyACM, точно. Туплю ближе к ночи. Ну не знаю насчет пользы, изврат - соглашусь.

rexos писался не для пользователей, а для компаний. Так что увы. Но можно задать тупые вопросы мне :)

Reply

eddy_em November 2 2018, 04:42:21 UTC
А мне само название ACM не нравится, поэтому сделал эмулятор pl2303, а сейчас эмулятор ch340 пишу. Только железки с МК не хватает: жена никак ко мне в кабинет не заскочит. Там всё-таки тоже vendor-запросы используются.
Возможно, и в прошивке приставок заведется, но мне на геймеров насрать.

Reply


eddy_em November 2 2018, 04:33:11 UTC
Бред какой-то! Лично я CDC для того и использую, что можно тупо писать
echo "что-то" > /dev/ttyUSBx
и
cat /dev/ttyUSBx

В своем софте тоже работа как с обычными файлами последовательных портов, с теми же ioctl'ами...

Что за мазохизм пхать libusb туда, где не надо?

Reply


Leave a comment

Up