Если вы можете, я бы предложил использовать такую библиотеку, как libusb, как предложили Крис и Джон Кейдж.
Если libusb не соответствует вашим потребностям и вы разрабатываете для Windows, вам следует взглянуть на программное обеспечение, которое предоставляет Jungo . Опять же, это перемещает программное обеспечение usb в пространство пользователя, а не требует разработки ядра Windows.
(редактировать 3: Илья указывает в комментарии, что Jungo также доступен для Linux)
Если вам нужно немного поработать над ядром (Windows или Linux), то C - это единственный вариант, который у вас есть. Исследуйте эту книгу Рубини для разработки Linux. Для разработки драйвера для Windows я могу порекомендовать эту книгу Oney.
Но я бы рассмотрел вариант libusb, предпочитая разработку драйверов в обоих случаях.
Btw. Если все, что вас интересует, - это возможность измерять напряжение на USB-устройстве (и написание кода не важно), существует множество продуктов, которые сделают это для вас. Взгляните на некоторые предложения от National Instruments . Они будут иметь дело с тяжелой работой usb и сбором данных и предоставят вам хороший программный интерфейс для использования в вашем приложении.
(редактировать 2)
Есть также некоторые USB-последовательные чипы (например, эти ), которые могут быть подключены напрямую к встроенному процессору, используя только UART. Обычно они поставляются с драйверами.