Что такое hid устройства на windows 10

Обновлено: 06.07.2024

© 2015-2019 DriverHub

Все названия продуктов, логотипы и торговые марки являются собственностью соответствующих владельцев. Все названия компаний, продуктов и услуг, используемые на этом сайте, предназначены только для идентификации.

DriverPack software is absolutely free of charge

  • Home Page /
  • other devices /
  • Microsoft other devices /
  • Microsoft HID-Compliant Mouse

Are you tired of looking for the drivers for your devices?

DriverPack Online will find and install the drivers you need automatically

Как известно, мышь (манипулятор, указательное устройство) является неотъемлемым атрибутом любого стационарного компьютера и нередко применяется при работе с ноутбуками, несмотря на имеющиеся на них тачпады. С некоторых пор появились так называемые HID-совместимые устройства, в число которых вошли и мыши. Далее рассмотрим, что собой представляет HID-совместимая мышь, как ее подключить к любому компьютеру или ноутбуку, установить необходимый набор драйверов и устранить возможные проблемы в работе.

Что такое HID-совместимые устройства?

Стандартное подключение и определение HID-совместимой мыши

Если рассматривать данный вопрос с практической точки зрения, сегодня любое устройство управления, подключаемое посредством интерфейсов USB, Bluetooth или даже Wi-Fi, распознается именно как стандарт HID. Как уже понятно, к съемным накопителям это не относится.

hid совместимая мышь драйвер windows 10

Что же касается подключения HID-совместимой мыши, достаточно просто использовать нужный тип соединения с компьютером или ноутбуком, а использовать можно и проводные, и беспроводные устройства. Обычно сразу же после того, как система сообщит, что обнаружено новое устройство, начнется поиск и установка драйвера, который необходим для обеспечения работы девайса (впрочем, как и для любого другого оборудования).

Нужно ли устанавливать драйвер HID-совместимой мыши в Windows 7 и выше?

hid совместимая мышь драйвер windows 10

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

Установка «родных» драйверов устройства

Если рассматривать именно современные игровые манипуляторы с намного более широкими возможностями, нежели у стандартных моделей, как правило, при их покупке носитель с драйверами поставляется в обязательно порядке. Установить необходимое ПО можно самостоятельно непосредственно с носителя или, используя «Диспетчер устройств» с пунктом обновления драйвера, указать путь к диску с программным обеспечением или дать системе возможность самостоятельного поиска драйверов на локальном компьютере. Первый вариант выглядит более предпочтительным, если на носителе с драйверами имеются специальные инсталляторы в виде исполняемых EXE-файлов, а второй подходит для случаев, когда драйверы представлены в виде файлов формата INF, SYS и др.

Примечание: если драйвер HID-совместимой мыши в Windows 10 по каким-то причинам не устанавливается, или в процессе инсталляции возникают разного рода ошибки, можно попытаться изначально запустить инсталлятор (если таковой действительно имеется в наличии) в режиме совместимости с операционной системой версии ниже.

hid совместимая мышь драйвер windows 10

Кроме того, настройку манипулятора после установки драйвера можно и через классическую «Панель управления», и через меню «Параметры», выбрав соответствующие разделы («Мышь» или «Устройства»).

К сожалению, иногда при подключении таких мышек к ноутбукам, могут наблюдаться конфликты, а одним из самых простых выходов из сложившейся ситуации является отключение тачпада, для чего можно воспользоваться самым обычным «Диспетчером устройств». Можно поступить еще проще, просто сменив порт USB с 2.0 на 3.0 и наоборот.

Автоматизированные базы данных и программы для установки и обновления драйверов

Намного более простой методикой поиска или обновления необходимо для работы манипулятора драйвера можно назвать использование автоматизированных программ. Например, очень популярным является универсальный пакет DriverPack Solution, который годится даже для оффлайн-поиска драйвера, поскольку его база данных намного больше той, что присутствует в Windows, учитывая и официальные ресурсы Microsoft в интернете.

hid совместимая мышь драйвер windows 10

Не менее просто можно применять и утилиты, предназначенные исключительно для обновления управляющего ПО вроде Driver Booster, которые, правда, ищут и устанавливают драйверы абсолютно для всего оборудования, которое будет найдено в процессе начального сканирования, а не только для какого-то одного устройства, зато обращаются исключительно к сайтам производителей и разработчиков программного обеспечения, что исключает попадание на компьютеры вирусов или неработоспособность оборудования после установки необходимых пакетов драйверов. Кроме того, применение таких программ актуально и в том случае, если подключение мыши осуществляется посредством Bluetooth, когда может потребоваться обновление драйвера соответствующего беспроводного адаптера.

Ручной поиск специфичного драйвера

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

hid совместимая мышь драйвер windows 10

Чтобы выполнить поиск наиболее соответствующего ПО, в «Диспетчер устройств» на вкладке сведений нужно выбрать пункт показа ИД оборудования и задавать поиск драйвера по наиболее длинной строке, в которой содержатся идентификаторы VID и PID, учитывая при этом и версию системы, и ее разрядность.

Манифест пакета — это XML-документ, содержащий сведения, необходимые системе для развертывания, вывода или обновления приложения среда выполнения Windows. Эта информация включает в себя идентификатор пакета, зависимости пакета, требуемые возможности, визуальные элементы и точки расширения. Каждый пакет приложения должен содержать один манифест пакета.

Приложение среда выполнения Windows, которое обращается к HID-устройству, должно включать определенные данные девицекапабилити в узел capabilities своего манифеста. Эти данные идентифицируют устройство и его назначение (или функцию). Обратите внимание, что некоторые устройства могут иметь несколько функций.

Элемент идентификатора устройства соответствует идентификатору устройства. Этот элемент может указывать сочетание идентификатора поставщика (VID) и идентификатора продукта (PID); или может быть задана универсальная строка ("Any"). Кроме того, идентификатор устройства может содержать дополнительную строку поставщика "USB" или "Bluetooth".

Элемент Type функции указывает функцию устройства. Этот элемент содержит одно или несколько значений использования HID. Эти значения состоят из страницы использования и идентификатора необязательного использования, каждый из которых является 16-разрядным шестнадцатеричным значением.

Пример Девицекапабилитиес

В этом разделе содержатся примеры записей девицекапабилитиес для трех устройств HID. Первые два соответствуют определенному поставщиком использованию на HID-устройстве, третьем для игрового устройства (на странице элементы управления играми), а четвертый — к джойстику и игровой планшет.

В следующих данных об использовании, определяемых поставщиком, устройство идентифицируется по идентификатору поставщика и сочетанию идентификаторов продуктов .

Следующая строка идентична первой за исключением дополнительной строки поставщика ("USB") в элементе идентификатора устройства .

В следующих данных об устройствах игры отсутствует идентификатор поставщика и код продукта.

В следующих джойстиках и данных игровой планшета нет идентификатора поставщика и идентификатора продукта

Требования для приложений для телефонов с Windows 8. x

Приложения для телефонов Windows 8. x могут получить доступ к API Windows. Devices. хуманинтерфацедевице , если производитель ПОДДЕРЖИВАЛ протокол HID для конкретных устройств и предоставил соответствующие данные устройства разработчикам приложений. Список поддерживаемых устройств HID, а также данные, необходимые для реализации обнаружения устройств, см. в документации производителя.

человеко-машинный интерфейс

Есть много странных терминов, связанных с использованием компьютера. Возможно, вы видели «Устройство интерфейса человека» или «HID». Звучит как что-то из научно-фантастического фильма, но что именно это означает?

Стандарт упрощения принадлежностей

HID устройства

HID в диспетчере устройств Windows

Это означало, что существует протокол для мышей, протокол для клавиатур и так далее. Устройствам необходимо использовать существующие протоколы или создавать собственные драйверы. У людей было больше работы по установке и настройке устройств.

Для сравнения, HID-совместимое устройство включает «пакеты данных», которые содержат все действия устройства. Например, на клавиатуре может быть клавиша для регулировки громкости. При нажатии этой клавиши «дескриптор HID» сообщает компьютеру, где в пакетах хранится цель этого действия, и оно выполняется.

Протокол HID значительно упрощает компаниям производство широко совместимых аксессуаров. Все современные операционные системы поддерживают протокол HID. Вы можете подключить USB-клавиатуру к ПК с Windows, Mac, Chromebook или даже к планшету Android, и она сразу заработает. Это все благодаря HID.

HID и приложения

Веб-камера USB в увеличенном масштабе

Самым большим преимуществом HID является возможность просто подключить к вашему устройству практически любое периферийное устройство, и оно сразу же начнет работать. Но это только половина магии. А как насчет того, чтобы эти аксессуары работали с приложениями?

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

Когда вы подключаете HID-устройство, оно сообщает о своих возможностях операционной системе. Операционная система интерпретирует данные и классифицирует устройство. Это позволяет приложениям и играм ориентироваться на классы устройств, а не на конкретные модели.

Это очень важный элемент HID, и мы принимаем его как должное. Игровой контроллер будет работать с вашей библиотекой Steam. Zoom узнает, что нужно включить вашу веб-камеру. Все это происходит с очень небольшой настройкой с вашей стороны.

Типы устройств интерфейса пользователя

USB подключен

Джо Федева

Как упоминалось ранее, USB-периферийные устройства являются наиболее распространенными устройствами с интерфейсом пользователя, которые вы увидите, но есть и другие типы.

USB-устройства относятся к классу «USB-HID». Это включает в себя обычные вещи, такие как клавиатуры, мыши, веб-камеры, трекпады и игровые контроллеры. Другие устройства USB-HID включают термометры, аудио инструменты, медицинское оборудование, телефоны и тренажеры.

HID не только упростил использование компьютеров, но и внес свой вклад в массовый рынок аксессуаров. Существуют тысячи клавиатур, мышей, веб-камер, контроллеров и других продуктов, о несовместимости с которыми вам просто не нужно беспокоиться.

В истории компьютеров было много достижений, но стандарт Human Interface Device имел оглушительный успех.

Установите драйверы HID Keyboard

Если вы недавно обновились до Windows 10, переустановили или обновили ее, возможно, вы обнаружили, что вам необходимо установить (или обновить) драйверы HID Keyboard.

В большинстве случаев вам действительно не нужно ничего делать или вручную загружать и устанавливать драйверы клавиатуры. Обновления Windows обычно заботятся об этом, и процесс завершается в фоновом режиме без сбоев. Но бывают случаи, когда ваша клавиатура может начать вести себя странно, например, регистрировать случайные вводы и игнорировать фактические, или вообще перестать работать после загрузки Windows после переустановки.

Вот несколько способов обновить и переустановить драйверы клавиатуры и решить проблемы, с которыми вы можете столкнуться.

Чтобы установить / обновить драйверы клавиатуры, откройте RUN, нажав Winkey + R, введите «devmgmt.msc» и нажмите Enter.


В диспетчере устройств разверните ветку Клавиатуры.


Затем щелкните правой кнопкой мыши на клавиатуре и выберите «Обновить драйвер».


Выберите Автоматический поиск драйверов.


Драйверы будут установлены / обновлены автоматически. Перезагрузите компьютер, чтобы изменения вступили в силу.

Вы также можете просмотреть (свой) компьютер в поисках драйверов, если вы уже загрузили драйверы с вашего компьютера или веб-сайта производителя клавиатуры.


Нажмите «Обзор», найдите папку с файлом драйвера и нажмите «Далее».


Кроме того, вы можете нажать «Разрешить мне выбрать» из списка доступных драйверов на моем компьютере и посмотреть, какие предложения Windows предлагает вам.


Затем выберите один из предложенных вариантов и нажмите «Далее».


Если вы не можете найти вариант, снимите флажок «Показать совместимое оборудование» и получите полный список драйверов от разных производителей на выбор. Затем нажмите Далее.


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


Откройте диспетчер устройств, как показано ранее (Win + X). Вы также можете использовать для этого только мышь: щелкните правой кнопкой мыши кнопку «Пуск» и выберите «Диспетчер устройств».


Затем щелкните правой кнопкой мыши на клавиатуре в ветви «Клавиатуры» и выберите «Удалить устройство».


Снова нажмите Удалить.


Выберите Да и перезагрузите компьютер, чтобы удалить.


После перезапуска Windows автоматически установит драйверы клавиатуры по умолчанию и снова заставит клавиатуру работать.

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

HID Проблемы с клавиатурой

Как и большинство периферийных устройств, HID-клавиатуры имеют тенденцию создавать несколько собственных проблем. Хотя в основном проблемы возникают из-за ошибок в драйверах, проблемы также могут включать проблемы совместимости или другие программы и службы, мешающие правильному функционированию устройства.

Исправления: клавиатура не работает

Большинство вышеупомянутых проблем можно решить, просто обновив или переустановив драйверы, как показано в предыдущем разделе. Но если проблема с вашей клавиатурой не устранена, вы также можете взглянуть на следующее:

Убедитесь, что порт USB работает

  • Неисправная клавиатура.
  • Неисправный кабель.
  • Неисправный порт USB.

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

Конфликт обновления драйвера Windows 10

Некоторые пользователи сообщают о любопытной проблеме при перезагрузке Windows 10. Функциональная клавиатура перестает работать, как только драйверы устройства обновляются автоматически с помощью обновления Windows.

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

Отключить ключи фильтра

Лучше оставить ключи фильтров выключенными. Чтобы в этом убедиться, нажмите Win + I и откройте «Настройки». Щелкните «Удобство доступа».


Прокрутите вниз и выберите «Клавиатура» на левой панели.


Теперь справа в разделе «Использовать ключи фильтра» выключите кнопку и снимите флажок «Разрешить ярлыку запускать ключи файлов».


Вы также можете один раз обновить / переустановить драйверы, на всякий случай. Затем перезагрузите компьютер. Этот метод должен обновить драйверы и предотвратить вмешательство других функций во ввод данных.

Мы надеемся, что теперь вы стали лучше осведомлены о HID-клавиатурах и обновлении их дисков, чем раньше. Выполнение этого несколькими различными способами также гарантирует, что вы избежите любых проблем, которые в противном случае могли бы беспокоить вашу клавиатуру.

Устройства от Silicon Laboratories не пользуются широкой популярностью в любительских кругах, им далеко до таких флагманов, как Atmel. Однако у них есть и вполне доступные простому смертному микроконтроллеры основных линеек в корпусе TQFP, и стартовые комплекты USB ToolStick (о чем совсем недавно упоминалось на хабре). Я сам начал свое знакомство с микропроцессорной техникой, работая с «силабсами», и вполне успешно.
В данной статье я расскажу, каким образом можно организовать связь компьютера с МК, используя USB-интерфейс, и как Silabs попытались сделать это простым для разработчика.
В качестве испытуемого будем использовать плату С8051F320DK, с микроконтроллером соответственно F32x серии, поддерживающей USB аппаратно, и Keil'овскую среду разработки uVision4.

Перед тем, как начинать копать в сторону реализации связи по USB необходимо определиться с некоторыми базовыми аспектами протокола: какое место занимает устройство в топологии (хост или ведомое устройство) и какой характер будет иметь информация, передаваемая по интерфейсу.

Создание USB совместимого HID-устройства типа джойстик

  • простота реализации;
  • компактный код;
  • поддержка Windows (не нужны дополнительные драйвера).
  1. конфигурацию дескриптора HID-устройства;
  2. процедуры передачи данных;
  3. дескриптор имени HID-устройства.
Начинаем с дескриптора устройства
  • диапазон значений, в котором будет действовать Throttle – LOGICAL_MINIMUM(0) и LOGICAL_MAXIMUM(255),
  • задаем размер этого диапазона(один байт) – REPORT_SIZE (8) и
  • количество органов управления данного типа – REPORT_COUNT (1).
  • диапазон значений — LOGICAL_MINIMUM(0) и LOGICAL_MAXIMUM(1);
  • размер диапазона(один бит) — REPORT_SIZE (1);
  • количество кнопок больше одной, поэтому тут уже необходимо использовать поле байтовой длины, значит REPORT_COUNT (8);
Процедуры передачи данных

Находим в примере следующий код:
void IN_Report(void)

IN_PACKET[0] = VECTOR;
IN_PACKET[1] = BUTTONS;

// point IN_BUFFER pointer to data packet and set
// IN_BUFFER length to transmit correct report size
IN_BUFFER.Ptr = IN_PACKET;
IN_BUFFER.Length = 2;
>

В этой процедуре идет составление отправляемого пакета, который после через хитрый указатель (на самом деле это просто структура из указателя и его длины) и передается нашим устройством. Главное аккуратно составить пакет, о чем нам и намекает комментарий, а дальше уже с ним сделают все без нашего участия.
Теперь расскажу о том, как и откуда мы берем переменные VECTOR и BUTTONS (обе, к слову, имеют тип unsigned char размером в байт).
Глобальной переменной VECTOR присваиваются значения с АЦП во время возникновения прерывания от него:
void ADC_Conver_ISR(void) interrupt 10
AD0INT = 0;

// индикация работы АЦП
if( VECTOR != ADC0H)
LED = 1;
else
LED = 0;

VECTOR = ADC0H;
>

Глобальная переменная BUTTONS аналогично изменяет значение в зависимости от нажатия кнопок. Кнопки опрашиваются по прерыванию от таймера. Таймер настраивайте в соответствии с личными предпочтениями.
void Timer2_ISR (void) interrupt 5
P2 &=

Дескриптор имени HID-устройства
Идентификация HID-устройства

После компиляции проекта и программирования микроконтроллера можно подключить устройство к USB-порту. Хост определяет, что устройство принадлежит к HID классу и передает управление устройством соответствующему драйверу.

Теперь в Windows идем в Панель управления->Игровые устройства и видим там нашего пассажира. Смотрим свойства и проверяем функциональность.

Низкая скорость передачи является главным ограничением HID-варианта построения устройства. Максимально возможная скорость передачи данных при такой организации обмена составляет 64 Кбит/сек. Такой показатель в сравнении с 12 Мбит/сек полной скорости USB-шины выглядит минусом HID-технологии в вопросе выбора конкретной USB-реализации. Однако для многих задач коммуникации указанной скорости вполне хватает и HID-архитектура как специализированный инструмент занимает достойное место среди способов организации обмена данными.

Вообще говоря, HID-устройства легки в реализации практически на любом МК с поддержкой USB. Как правило, достаточно одного работающего примера от разработчиков, корректируя который можно получать любой требуемый функционал.

Создание полноценного USB-устройства с использованием инструментария Silabs USBXpress

image

Но вот наступает момент, когда вам необходимо использовать свой протокол работы с устройством на МК. При этом хотелось бы передавать много данных на большой скорости, и делать все это с помощью своего ноутбука, в котором много USB и ни одного COM, да еще и ваше устройство должно быть не больше спичечного коробка, и лепить на плату USB-UART на микросхеме FT232RL нет никакой возможности.
Тут-то ребята из Silabs и решили облегчить всем жизнь и показать “дорогу в будущее”, без тяжелого ломанья зубов об написание собственных дров и прошивок.
USBXpress Development Kit – это законченное решение для МК и хоста (PC), обеспечивающее простую работу с протоколом USB с помощью высокоуровневого API для обоих сторон. Не требуется особых знаний ни самого протокола USB, ни написания драйверов. Так пишут силабовцы в своем гайде.

Кстати о Programmer's Guid: занимая всего 30 страниц, он крайне прост и доходчив. Примеры же лично мне не нравятся, часто встречаются очень кривые места, программы же под PC вообще лучше не смотреть, крайне нечитабельны.
USBXpress DK предоставляется к микроконтроллерам линеек C8051F32x, C8051F34x и для CP210x (USB-to-UART Bridge Controller). Библиотека USBXpress включает в свой состав библиотеку нижнего уровня, драйверы USB для ПК и DLL-библиотеку для разработки приложений на верхнем уровне. Ну и, конечно же, набор документации и примеров.
В библиотеке реализована передача данных только в режиме BULK. При использовании всех функций библиотеки, их реализация займет всего 3 Кбайта Flash-памяти микроконтроллера.

Firmware
  1. Написание USB-дескриптора;
  2. Инициализация устройства и USB на борту;
  3. Обработка входящих данных и формирование исходящего пакета;
  4. Обработка прерываний.
Написание USB-дескриптора

В отличие от HID с его хитро формализованной структурой тут все просто
code const UINT USB_VID = 0x10C4;
code const UINT USB_PID = 0xEA61;
code const BYTE USB_MfrStr[] = ;
code const BYTE USB_ProductStr[] = ;
code const BYTE USB_SerialStr[] = ;
code const BYTE USB_MaxPower = 15;
code const BYTE USB_PwAttributes = 0x80;
code const UINT USB_bcdDevice = 0x0100;

С VID, PID и именами думаю все понятно, плюс еще можно задавать максимальный ток параметром MaxPower (макс.ток = _MaxPower*2), PwAttributes — параметр отвечающий за удаленный wake-up хоста, и bcdDevice — номер релиза устройства.

Нюанс инициализации устройства и USB на борту

Теперь начнем собственно функцию main, в которой МК будет без устали выполнять прием и передачу данных.
void main(void)
PCA0MD &=

0x40; // Disable Watchdog timer
USB_Clock_Start(); // Init USB clock *before* calling USB_Init
USB_Init(USB_VID,USB_PID,USB_MfrStr,USB_ProductStr,USB_SerialStr,USB_MaxPower,USB_PwAttributes,USB_bcdDevice);

Initialize();
USB_Int_Enable();
.

Здесь, как требует комментарий, в первую очередь необходимо инициализировать тактовый генератор для USB перед самой его инициализацией, только потом провести остальные стартовые операции для МК — Initialize(); — который настраивает порты, таймер и АЦП; затем разрешаем прерывания от USB.

Обработка входящих данных и формирование исходящего пакета

Вот подобрались к самому главному
//. продолжение main
while (1)
if (Out_Packet[0] == 1) Led1 = 1;
else Led1 = 0;
if (Out_Packet[1] == 1) Led2 = 1;
else Led2 = 0;

In_Packet[0] = Switch1State;
In_Packet[1] = Switch2State;
In_Packet[2] = Potentiometer;
In_Packet[3] = Temperature;
>
// конец main
>

Out_Packet – пакет, принятый от хоста;
In_Packet — пакет, отправляемый хосту;
Суть ясна, МК постоянно обновляет отправляемый пакет и считывает статус полученного.

Обработка прерываний

Теперь в 2-х словах о том, откуда получаем значения в отправляемый пакет. Как и в примере с HID, состояния кнопок получаем по прерываниям от таймера, а значения АЦП и термометра — по прерываниям от АЦП.
Вот здесь один тонкий момент — при инициализации АЦП настраиваем его так, чтобы конвертирование значений происходило по переполнению таймера (того же, который мы используем для кнопок), а само же прерывание от АЦП возникает по завершению конвертирования. И тут кроме получения значений преобразователя в конце процедуры вызываем API функцию
Block_Write(In_Packet, 8)
которая и отправляет собранные данные на компьютер.
Получение команд от компьютера происходит в процедуре обработки прерываний от USB:
void USB_API_TEST_ISR(void) interrupt 16
BYTE INTVAL = Get_Interrupt_Source();

if (INTVAL & RX_COMPLETE)
Block_Read(Out_Packet, 8);
>

if (INTVAL & DEV_SUSPEND)
Suspend_Device();
>

if (INTVAL & DEV_CONFIGURED)
Initialize();
>
>

Этот момент подробно расписан в Programmer's Guid. Суть в том, что вызывается API-функция Get_Interrupt_Source(), возвращающая код причины возникновения API прерывания. Далее код анализируется и выполняется необходимое действие.

Программ на PC

Разбирать программу для компьютера я не буду. Силабовцы предоставили примеры на Visual Basic и на C, но, даже не заглядывая в исходники, подключить библиотеку в используемой вами среде разработки и прочитать пару страниц о функциях сложности вызвать не должно.
Поэтому я воспользуюсь уже скомпилированной программой из примера.

Итак, компилируем проект для МК, зашиваем, устанавливаем универсальные драйвера для USBXpress и подключаем отладочную плату. Система определит новое устройство и установит для него драйвера.
Посмотрим после установки, что творится в диспетчере устройств Винды:

Теперь запускаем программу:

Видим, что она правильно нашла устройство.

Все, теперь можно тут потыкать кнопки, поморгать диодами, погреть МК руками, увидеть как растет температура.

Заключение

В целом создание USB устройства с помощью библиотек USBXpress оказалось более быстрым и прозрачным процессом, нежели используя HID-архитектуру. Да и скорость будет однозначно выше. Наиболее тонким местом является то, что библиотека закрыта, и узнать насколько надежным является это решение невозможно, к тому же доступен только BULK режим передачи данных.

Читайте также: