Имитация USB клавиатуры на STM32

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
Gurvinok
Нашел транзистор. Понюхал.
Сообщения: 198
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Откуда: Москва
Контактная информация:

Имитация USB клавиатуры на STM32

Сообщение Gurvinok »

Народ, привет всем! Выручайте, перерыл весь интернет, не могу найти описания протокола передачи данных у USB клавиатуры. Нужно создать девайс на STM32 который будет прикидываться клавиатурой. Знаю только то что протокол от PS/2 не подходит. Пакет построен из 8 байт, первый это доп клавиши (Shift. Alt, Ctrl), второй это для какой-то клавы OEM, а последние 6 байт это код нажатой клавиши. В принципе все работает, но... Передача осуществляется методом записи пакета в буфер, а при опросе хостом клава его отдает, так вот после передачи кода клавиши, клава должна загрузить в этот буфер код NAK для того чтобы хост понял что больше ничего не нажимается. Так вот я не знаю как подать этот чертов NAK! В сети нет описания протокола. После передачи кода клавиши, в блокноте печатается эта клавиша как будто я ее держу. Выручайте если кто в курсе, или дайте описание протокола.
ПЛИЗЗЗЗЗЗЗ!!!!!

Добавлено after 2 hours 18 minutes 53 seconds:
Все. Вопрос снимается. Нужно просто записать в байт клавиш нули. А перед этим выдержать паузу не менее заданной в дескрипторе. Иначе клавиша будет вечно отпущена.
Я не волшебник, я только лечусь
Реклама
alexf58
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Сб фев 09, 2013 23:00:23

Re: Имитация USB клавиатуры на STM32

Сообщение alexf58 »

Не весь интернет перерыл, или так себе рыл.
Поиск на "HID keyboard emulation" дает кучу полезных ссылок. Например
https://www.sparkfun.com/tutorials/337
a добавить "STM32", так и такое:
http://stm32f4-discovery.net/2014/09/li ... id-device/
Реклама
Аватара пользователя
Gurvinok
Нашел транзистор. Понюхал.
Сообщения: 198
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Откуда: Москва
Контактная информация:

Re: Имитация USB клавиатуры на STM32

Сообщение Gurvinok »

Во первых я уже написал что разобрался. Я нашел официальный документ по классу HID устройств. Вот Device Class Definition for Human Interface Devices (HID)если кому надо.
Во второй ссылке, что вы предложили описание протокола незнающего введет в заблуждение. Там с какого-то перепугу в протоколе стало 9 байт вместо 8 и Modifier keys переехал с нулевого на первый и будет очень весело искать причину почему не работают Shift, Ctrl и Alt.
В любом случае спасибо за помощь и тему можно закрывать.
Я не волшебник, я только лечусь
Ответить

Вернуться в «ARM»