Перейти к содержанию
    

обмен строками по USB на STM32F103

Есть необходимость обмена строками по USB между STM32F103 и ПК. Поднимается HID устройство. Кто что посоветует. Может кто то сталкивался. Побитовый обмен работает на ура но при объявлении в REPORT более длинного массима скажем 63 байта ничего не получается. Смотрел разную документацию - пишут для лампочек, кнопок. В мыше есть поля смещения по осям. где LOGICAL_MAXIMUM = 255 попытался прописать под мышь с массивом таких данных (63). Ни как.

В общем совсем запутался.

ПОЖАЛУЙСТА укажите куда и что.

СПАСИБО!!!

Изменено пользователем haker_fox
Уточнил название темы, добавил теги, переместил в нужный раздел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример проекта для Atmel SAM D21, но суть та же, по крайней мере дескрипторы можно взять оттуда - https://github.com/ataradov/dgw/tree/master/embedded

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вам нужно делать обмен данными то зачем вам HID?

Я делал обмен булками вот по этой статье http://we.easyelectronics.ru/STM32/stm32-i...-dlya-keil.html

Она в двух частях.

Софт под винду писал на C# использовал LibUsbDotNet.

Все сразу заработало. Надо отметить что на C# я пишу "раз в году" и только простенькие программы для конфигурации железок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вам нужно делать обмен данными то зачем вам HID?
HID работает без всяких драйверов и INF файлов.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  0x06, 0x00, 0xFF,       //     Usage Page (Vendor-Defined 1)
  0x09, 0x01,             //     Usage (Vendor-Defined 1)
  0xA1, 0x01,             //     Collection (Application)
  0x15, 0x00,             //         Logical Minimum (0)
  0x26, 0xFF, 0x00,       //         Logical Maximum (255)
  0x75, 0x08,             //         Report Size (8)
  0x95, USB_PACK_MAX,     //         Report Count (69)
  0x09, 0x00,             //         Usage (Undefined)
  0xB2, 0x02, 0x01,       //         Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Buf)
  0xC0                    //     End Collection

У меня например USB_PACK_MAX = 69.

Обмен через GET_REPORT и SET_REPORT и HID_FEATURE.

В дескрипторе конфига конечная точка описана как interrupt с размером пакета 8 байт.

Для обмена на компе используются вызовы из HID.DLL HidD_GetFeature и HidD_SetFeature.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

HID работает без всяких драйверов и INF файлов.

Да. Только если VID, PID неизвестны системе, то каждый раз будет обнаруживаться неизвестное устройство. И под линуксом не очень удобная работа получается...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да. Только если VID, PID неизвестны системе, то каждый раз будет обнаруживаться неизвестное устройство. И под линуксом не очень удобная работа получается...

С какого бодуна у Вас подобная информация?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да. Только если VID, PID неизвестны системе, то каждый раз будет обнаруживаться неизвестное устройство.
Не будет. Все работает из коробки. Я уже давно использую HID как самый удобный способ обмена информацией со всеми ОС без драйверов и изврата.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да. Только если VID, PID неизвестны системе, то каждый раз будет обнаруживаться неизвестное устройство. И под линуксом не очень удобная работа получается...

Если устройство неизвестное, то в диспетчере устройств так и будет написано - "HID совместимое устройство".

Если VID и PID не меняются при каждом включении, то ничего переопределяться не будет, только если воткнете в другой порт, но это уже маразм винды, причем не только для HID.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если пропишете непустой серийник, ничего не переопознается (проверено на CDC).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...