USB Hid

Либарра
Вторник 15 сентября 2015 г. 18:10
//-----------------------------------------------------------------------------------------------------------------------------

Обновление 2018.03.01
[Мадиас - Чт, 01, 2018, 16:03] - Поэтому я думаю, что версия USB HID Libarras теперь устарела, так как версия Arpuss имеет ошибки и другие функции.
Может быть, мы должны отметить эту тему/библиотеку "устаревшего?"(Либарра не была в сети почти на один год, даже на GitHub).

Так что новый пользователь должен переключиться на -> ViewTopic.PHP?f = 13&t = 2926
//-----------------------------------------------------------------------------------------------------------------------------
Оригинальный пост:

Всем привет,

Я перенес классы мыши и клавиатуры из ядра Arduino Due, а также класса джойстика из Teensy. Я изменил исходные файлы Libmaple USB_CDCACM, чтобы использовать дескриптор отчета устройства USB HID, который может использовать три устройства одновременно. Также я добавил экземпляры трех устройств в ядро ​​STM32F1, чтобы использовать их в любом эскизе, так же, как серийный экземпляр.

Использование клавиатуры и мыши в основном такое же, как и у Arduino Due, и я старался держать ее одинаково с помощью джойстика, поэтому класс почти такой же, как и подростковый, но не требует вас подтвердить Вы хотите отправить данные, так как они отправляются, как только вы устанавливаете какую -либо кнопку или значение оси с помощью методов класса.

Чтобы внести эти изменения в ядро, совместимое с последовательным, я изменил платформу и платы ядра STM32F1, чтобы для типа USB имеется вариант меню (серийный или скрытый). Я полагаю, что внес необходимые изменения, чтобы избежать проблем для других плат (в настоящее время HID работает только для Maple Mini) при составлении из -за типа USB, предоставленного компилятору в качестве аргумента, но скажите мне, что что -то облажал.

В папке HID есть 3 простых примера (по одному для каждого устройства).

О лицензиях портированных библиотек, я думаю, что они вполне разрешены. Для файлов USB_HID они основаны на файлах Libmaple, а файлы USB_HID_DEVICE основаны в основном в ардуино, которые причитаются файлам, основными файлами.

Это репозиторий GitHub: https: // github.com/libarra111/arduino_stm32

Спасибо за чтение, и, пожалуйста, скажите мне, что вы думаете :).


Либарра

Мадиас
Вторник 15 сентября 2015 г. 18:56
Привет и добро пожаловать, Либарра!
Спасибо за вашу работу, это действительно интересно для меня, потому что я начал разговор о проекте USB_MIDI (он был создан давным -давно на форуме Leaflabs), и проблема в том, что он совершенно несовместимо со «стандартным» репо. (USB_SERIAL обменяется с USB_MIDI). Таким образом, ваш метод с вариантом меню действительно интересен - возможно, у меня есть возможность не иметь двух (более или менее) идентичных репо (и поддерживать их обоих в курсе)!
https: // github.com/madias123/arduino_stm32_midi_project
(Между тем действительно устаревшей - моя офлайн -версия новее)

с уважением
Матиас

Либарра
Вторник 15 сентября 2015 г., 19:39
Привет, Матиас,

Идея использования меню не совсем моя, так как я взял его из Teensyduino, поскольку в нем есть меню, чтобы выбрать среди различных вариантов USB. Один из них даже помечен как серийный + спрятан, так что, возможно, мы могли бы добавить серийный интерфейс к другим, чтобы автоматически сбросить при загрузке эскиза. Я посмотрел на ваше репо GitHub, и я вижу, что вы добавили свои MIDI -файлы и переименовали серийные. Что можно сделать (как я сделал в своей вилке), это добавить #if определенное (usb_midi) в boards_setup.CPP -файл все USB_*.H файлы и инициализируйте только USB -устройство, выбранное из меню типа USB. Если вы хотите, мы можем попытаться добавить ваш MIDI -код и мой код портаного HID в одну репо и посмотреть, нормально ли сериал, MIDI и Hid работают с меню.

Спасибо за прием.


Либарра

Мадиас
Вторник 15 сентября 2015 г. 20:47
Дорогая Либерра!
Я думаю, что это было бы отличной идеей, я немного занят, чтобы я работал I2S и DMA (см. Моя вопиющая тема --> ViewTopic.PHP?F = 19&t = 533
Я сделал полный список всех изменений, поэтому нет необходимости искать все изменения :)
плюс "+" означает, что я добавляю файл
Минус "-" означает, что я удалил файл (плохо! Я отметил их красным)
Редактировать означает, что я редактирую конкретный файл
Причина, почему я удалил некоторые файлы, заключалась в том, что я не избавлялся от сериала.USB (так что устройство всегда разговаривало с ПК как «последовательное устройство» - возможно, это больше не произойдет, потому что в основном репозиции было много изменений.
Итак, вот список:

Файлы изменены:
STM32F1:
доски.TXT: редактировать только * midi * Maple Mini доступен
STM32F1/Cores/Maple
+ usb_midi.CPP NEW
+ Протискай.H РЕДАКТИРОВАТЬ: +#включить <usb_midi.час> #include <usb_serial.час>
+ доски.H РЕДАКТИРОВАТЬ: Определяет в конце, сравните необходимость
+ usb_midi.H Новое
+ Минсисекс.c Новый
+Минсисекс.H Новое
+ правила.MK EDIT: некоторые определяют, можно заменить
-usb_Serial.CPP
-usb_Serial.час

STM32F1/Cores/Maple/Libmaple/USB/STM32F1
+ usb_midi_device.в
- usb_cdcacm.в
STM32F1/System/Libmaple
+ Midispecs.час
+ Минсисекс.час
+ Минсисекс.в

STM32F1/System/Libmaple/include/libmaple
+ Midispecs.час
+ usb_midi_device.час

STM32F1/SYSTER/LIBMAPLE/USB/STM32F1
+ usb_midi_device.в

Stm32f1/variants/maple_mini/wirish
+ boards_setup Редактировать: некоторые дополнения, сравните необходимые

с уважением
Матиас

Либарра
Ср. 16 сентября 2015 г. 12:41
Дорогой Матиас,

Я попытался добавить ваши файлы MIDI, но, как вы сказали, если присутствуют серийные файлы, кажется, что последовательно.begin () выполняется, в результате чего Maple Mini будет обнаружен в виде COM -порта с PID, объявленным в USB_CDCACM.c Файл, хотя опция меню предотвращает делькацию «serialusb serial» в USB_SERIAL.CPP и выполнение серийного.начинать(); в boards_setup.CPP.

Я могу подтвердить, что сериал не объявляется, потому что в вашем примере MIDI я добавил сериал.конец(); и я получил ошибку, что сериал не был объявлен, затем я попытался использовать midiusb.конец(); и я получил предупреждение о том, что метод не был определен, хотя вы определили его в USB_MIDI.CPP.

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


Либарра

Mrburnette
Ср. 16 сентября 2015 г. 12:44
@libarra

Добро пожаловать и спасибо ...

Каждому UC нужна клавиатура HID, теперь Mini имеет.

Луча

Либарра
Ср. 16 сентября 2015 г. 1:37
Спасибо, Рэй,

Да я тоже это думал :). Давайте посмотрим, какие проекты USB с Maple Mini размещены на форуме.


Либарра

victor_pv
Ср. 16 сентября 2015 г., 3:10
Позвольте мне попытаться понять, что эти классы, чтобы клавиатура, мышь и джойстик могли быть подключены к STM32, или так, как плата STM32 может представить себя как к компьютеру?

Либарра
Ср. 16 сентября 2015 г., 4:04
Привет, Виктор,

Новые классы - Hidkeyboard, Hidmouse и Hidjoystick, и экземпляры для их использования - клавиатура, мышь и джойстик. Например, если вы хотите смоделировать, что вы печатаете «Привет, мир!!!"В используемой клавиатуре:

Клавиатура.Печать ("Hello World!!!");

Если вы хотите имитировать используемое вами правой кнопкой мыши мыши:

Мышь.Нажмите (mouse_right);

Точно так же, как вы можете отправлять данные джойстика, такие как положение X и Y, или кнопки нажимают в джойстике. Таким образом, как вы говорите, Maple Mini обнаруживается ОС (Linux, MacOS, Windows или любой другой с драйверами HID) в качестве устройства HID с функциональностью мыши, клавиатуры и джойстика. Если у вас есть шанс, пожалуйста, проверьте эти классы HID и скажите мне, что вы думаете. Когда вы устанавливаете мою вилку ядра, вам просто нужно выбрать Maple Mini Poard и USB -тип «клавиатура + мышь + мышь», при этом серийный тип отключена, но вы можете использовать Mini в качестве устройства HID, чтобы перепрограммировать Это необходимо установить режим Mini в вечный загрузчик или просто нажмите кнопку сброса, когда загрузчик ищет устройство DFU.


Либарра

Rogerclark
Ср. 16 сентября 2015 г. 5:41
Звучит очень круто

Мне нужно попробовать

Вассилис
Ср. 16 сентября 2015 г., 6:35
Мне это нравится !
Молодец Либарра !

Либарра
Ср. 16 сентября 2015 г. 8:07
@Matthias: Я не знаю, что не так с MIDI инициализатором :?: , Потому что, как вы сказали, он использовал последовательный дескриптор, если доступно, поэтому я решил «стирать» серийные файлы, просто добавляя в них #ifdef, который позволяет коду только если выбран последовательный параметр. После этого я снова загрузил ваш MIDI -тест, и, поскольку он не нашел серийный инициализатор, он использовал Hid One :зло: . Итак, снова я разрешил код файлов HID, только если он был выбран в меню. И, наконец, я повторил то же самое с файлами MIDI, чтобы избежать дальнейших проблем.

К счастью, теперь все, кажется, работает, и я вступил в эти изменения в репо, так что это готово для всех попробовать.

@Roger: Спасибо, теперь есть и MIDI -вариант Матиаса!

@Vassilis: Спасибо!


Либарра

Мадиас
Ср. 16 сентября 2015 г. 8:37
@libarra: Я знаю, что Midicode - это действительно беспорядок (это был только «план» для очень старой кленовой IDE, и «наш» Libmaple Repo полностью восстанавливается), я сделал несколько ошибок, но есть много дел
Кстати: Здесь я быстро&Dirty Sequencer Demo некоторое время назад, только с Maple Mini и ILI9341 SPI-Touch-TFT: https: // www.YouTube.com/watch?v = -jvcrhck7wq
Я попробую твое репо как можно скорее! (К сожалению, я @Work)

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

Если вы заинтересованы:
а) В июне была поток о «устройстве массового хранения USB» ---> http: // www.STM32duino.com/viewtopic.PHP?f = 15&t = 315
б) Была также нить обо всем, что связано с STM32-USB: http: // www.STM32duino.com/viewtopic.PHP ... 427&P = 3989

с уважением
Матиас

Мадиас
Ср. 16 сентября 2015 г. 10:11
Маленькое обновление:
Я бы пора попробовать:
К сожалению, это не работает, потому что Maple Mini не отображается как «MIDI Device» в программе Sequencer или настройке Audio/MIDI.
Это странно, потому что в списке устройств USB он показан как «синтезатор Diro» (это имя, я дал ему - мы должны изменить это! :) )
Итак, я сделаю все возможное и поиск ошибки. Я думаю, это USB_CDCACM.в
Редактировать: ОК, пробовал разные вещи... не появляюсь, я пойду глубже, и это нужно время.

Мадиас
Ср. 16 сентября 2015 г. 12:51
Дополнительная информация, связанная с USB-Кейбордом и USB-Mouse:
Оба примера кода не будут работать под OSX, но в Windows 7 на параллелях.
Я возьму свой Arduino Due и попробую те же примеры.
РЕДАКТИРОВАТЬ Хорошо, под Windows 7 даже мой MIDI -пример работает! Таким образом, должна быть проблема с USB-инициализацией, потому что мой Mid-Repo работает под OSX. Очень странно....
Может ли кто -нибудь проверить клавиатуру, мышь (возможно, MIDI) под Linux?

Больше редактирования:
В системном диспетчера OSX существует разница: (Слева: My Midi Repo = работа, справа: hid version = не работает)
Изображение
перевод:
"Erforderliche Stromstärke" = Требуемая сила,
"Unbekannt - Gerät wurde nicht konfiguriert" = неизвестно - устройство не было настроено
Это «неизвестное - устройство не было настроено» на каждом выбранном USB -HID: клавиатура, джойстик, мышь.
Нормальный «сериал» работает под OSX.

Мадиас
Ср. 16 сентября 2015 г. 16:04
ОК, более глубокие детали:
Это весь USB -вывод OSX для моего рабочего Midi Repo: +-o Diro Synth@6200000 { "sessionID" = 106066826633184 "iManufacturer" = 1 "bNumConfigurations" = 1 "idProduct" = 20 "bcdDevice" = 512 "Bus Power Available" = 250 "bMaxPacketSize0" = 64 "USB Product Name" = "Diro Synth" "iProduct" = 2 "iSerialNumber" = 0 "USB Address" = 3 "bDeviceClass" = 0 "locationID" = 102760448 "bDeviceSubClass" = 0 "IOUserClientClass" = "IOUSBDeviceUserClientV2" "PortNum" = 2 "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"} "bDeviceProtocol" = 0 "USB Vendor Name" = "Diro " "Device Speed" = 1 "idVendor" = 7855 "Requested Power" = 50 "IOGeneralInterest" = "IOCommand is not serializable" "Low Power Displayed" = No }

Либарра
Ср. 16 сентября 2015 г. 16:28
Привет, Матиас,

Извините, я не хотел говорить, что MIDI -код был в беспорядке, я имел в виду, что я не знаю, почему MIDI Iminityzer использует код других USB -интерфейсов, поскольку он в основном такой же, как Другие USB -интерфейсы (с его различиями), но другие USB -интерфейсы не используют код других.

О вашем Midi Code, который я добавил, это швы для работы над моей Win 7 64 битами (показывая себя как Diro Synth), в настоящее время у меня возникают проблемы, чтобы заставить его работать с моим Debian Jessie 64 битами. HID работает для меня с моим Win7 и моим Debian. К сожалению, я не могу проверить на Mac OS.

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

Я проверил твое видео и выглядит очень круто :) .

Я проверю USB -массовое хранилище, чтобы увидеть, что можно сделать.

О USB PIDS выглядит действительно интересно, что у STM32Duino может быть свои зарегистрированные PIDS. Я видел некоторые из их проектов, например, «сбой», который основан на Arduino и зарегистрировал 5 PID с OpenMoko, поэтому я думаю, что они примут запрос STM32Duino на PID, хотя я не знаю, как это будет работать с Проект STM32Duino охватывает множество досок и UCS. Это нормально, если все они имеют одни и те же пиды?


Либарра

Либарра
Ср. 16 сентября 2015 г., 17:06
Дорогой Матиас,

Я обновил репо с вашим исходным кодом для класса устройств и подкласса, надеюсь, он решит проблему в Mac OS.


Либарра

Мадиас
Ср. 16 сентября 2015 г. 18:46
Спасибо, Либарра,
Я прошел быстрый тест:
Osx-midi: работающий!
Windows 7 MIDI: работающий!
Может кто -то с Linux? (снова ;) )
Интересно, что ни работают ни клавиатура, ни мышь, ни джойстик.
Может быть, завтра завтра, так что я заменю для них DeviceClass и DeficesBclass, и если он работает под OSX, я попробую на Win7.
Я думаю, что мы должны быть совместимы со всеми тремя «основными» ОС: Linux, OSX и Windows.

РЕДАКТИРОВАТЬ: Я пришлю вам обновленную версию моих MIDI -файлов, я удалил несколько файлов (все с Sysex) и написал полный новый (работающий!) Sysex Code.
К сожалению, USB-MIDI полностью отличается от серийных миди (я изучал несколько часов...), так что лучшая библиотека Arduino Midi https: // github.com/fortyseveneffects/ar ... di_library
не совместим. (Но библиотека хорошо работает на STM32 (только с серийными устройствами..)

Клубника
Ср. 16 сентября 2015 г., 8:50 вечера
+1 для этого порта! Действительно приятно видеть эту функциональность ^^. Теперь я даже могу работать над другими проектами, которые я имел в виду, ура.

Может положить это в главное репо?

~ Солома

Мадиас
Ср. 16 сентября 2015 г., 21:25
ОК, быстрое исправление для OSX (также протестировано под Windows7!)
Всего одна запись в USB_HID.час:
вместо: #define USB_DEVICE_CLASS_HID 0x03

Либарра
Ср. 16 сентября 2015 г., 23:11
@Matthias: отличные новости, Миди работает над OSX и на вашем Win7!, Теперь я протестировал MIDI в старых битах Ubuntu 64, и это также работает (по крайней мере, я останавливаюсь, так что мой единственный тест - открыть мусульманин, пока Mini Midi подключен, и он играет примечание каждую секунду или около того) :) .

Также я обновил класс устройств USB в HID, как вы сказали, и HID все еще работает на Win7 и Ubuntu :) .

@Straw: Спасибо!, Я думаю, что будет интересно увидеть проекты HID людей с Mini и другими досками STM32Duino :) .

victor_pv
Чт 17 сентября 2015 г. 2:28 утра
Либарра написала:Привет, Виктор,

Новые классы - Hidkeyboard, Hidmouse и Hidjoystick, и экземпляры для их использования - клавиатура, мышь и джойстик. Например, если вы хотите смоделировать, что вы печатаете «Привет, мир!!!"В используемой клавиатуре:

Клавиатура.Печать ("Hello World!!!");

Если вы хотите имитировать используемое вами правой кнопкой мыши мыши:

Мышь.Нажмите (mouse_right);

Точно так же, как вы можете отправлять данные джойстика, такие как положение X и Y, или кнопки нажимают в джойстике. Таким образом, как вы говорите, Maple Mini обнаруживается ОС (Linux, MacOS, Windows или любой другой с драйверами HID) в качестве устройства HID с функциональностью мыши, клавиатуры и джойстика. Если у вас есть шанс, пожалуйста, проверьте эти классы HID и скажите мне, что вы думаете. Когда вы устанавливаете мою вилку ядра, вам просто нужно выбрать Maple Mini Poard и USB -тип «клавиатура + мышь + мышь», при этом серийный тип отключена, но вы можете использовать Mini в качестве устройства HID, чтобы перепрограммировать Это необходимо установить режим Mini в вечный загрузчик или просто нажмите кнопку сброса, когда загрузчик ищет устройство DFU.


Либарра

Либарра
Чт 17 сентября 2015 г., 3:19
Да, Виктор, я подозреваю, что окружающие люди находятся в опасности быть "спрятанным? : D . Некоторое другое применение для HID Mini может сделать небольшую клавиатуру для удобных ключевых ярлыков, сделать свой собственный геймпад/джойстик или ремонтировать/расширить функциональность существующей.


Либарра

Zoomx
Чт 17 сентября 2015 г., 6:27
Таким образом, мы можем воспроизвести USB -резиновый Ducky!

Rogerclark
Чт 17 сентября 2015 г., 7:06 утра
Возможно ли изменить код на переключение в режим HID под управлением программным обеспечением, ? я.e Мы можем навязать перечисление USB на Maple Mini и Generic Poards, поэтому я должен быть технически возможным

Либарра
Чт 17 сентября 2015 г. 9:05 утра
Привет, Роджер,

Вы имеете в виду, E.глин. Перейдите с USB -сериал на USB HID в эскизе? Если это так, я думаю, что это возможно изменить код для этого, хотя Миди доставит проблемы. Другой вариант - реализовать дескрипторы для USB -устройства с двумя или более интерфейсами, E.глин. серийный + спрятан. При переносе кода HID в Mini я прочитал в этом PDF ( http: // www.ул.com/st-web-ui/static/acti ... 158241.PDF ) что, когда компьютер обнаруживает композитное устройство, он назначает другой драйвер для каждого интерфейса.


Либарра

darth_llamah
Чт 17 сентября 2015 12:48
Примеры эскизов, кажется, отлично работают на Linux (Debian 8 x64)
Пример клавиатуры- отправляет правый супер-ключ (ключ Windoze) matus@laptok:~$ lsusb -s 003:029 -v Bus 003 Device 029: ID 1eaf:0024 Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x1eaf idProduct 0x0024 bcdDevice 2.00 iManufacturer 1 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 41 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 188 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0

Мадиас
Чт 17 сентября 2015 г. 14:19
darth_llamah написал: Примечание: спрятавшись на борту единственным вариантом для загрузки в Maple Mini:
1. Скомпилируйте эскиз
2. Нажмите и удерживайте кнопку сброса на клене
3. Нажмите «Загрузить» в Arduino и RELESS RESET одновременно- последовательная загрузка * должна * начать, прежде чем загрузчик выполняет основную программу

Либарра
Чт 17 сентября 2015 г. 14:58
@darth_llamah: Спасибо за тестирование кода в Linux!. Вы пробовали закомментированные строки в примере эскизов?, Я думаю, что один из ключей Windows не работает в Gnome для отображения обзора. В примере джойстика, если вы хотите использовать желаемое имя для номера светодиода (я исправим его в следующем обновлении репо) или вы сможете прокомментировать линию Pinmode, я только если кто -то хотел использовать Мини привел к чему -либо.

@Matthias: Да, сейчас это цена для использования MIDI или HID вместо сериала : x . У вас все еще проблемы с мышью и джойстиком в OSX?, Я искал на форуме Teensy, но единственные вещи, которые я нашел, было о номере класса устройства, и что джойстик был обнаружен как два джойстика. У вас есть настоящий джойстик, который можно проверить на Mac и взглянуть на дескриптор отчета? Может быть, мы сможем основать код на этом. О ваших обновленных файлах MIDI, я обновлю их как можно скорее, они в вашем репо?


Либарра

Мадиас
Чт 17 сентября 2015 г. 15:12
Либарра написала: @Matthias: Да, сейчас это цена для использования MIDI или HID вместо сериала : x . У вас все еще проблемы с мышью и джойстиком в OSX?, Я искал на форуме Teensy, но единственные вещи, которые я нашел, было о номере класса устройства, и что джойстик был обнаружен как два джойстика. У вас есть настоящий джойстик, который можно проверить на Mac и взглянуть на дескриптор отчета? Может быть, мы сможем основать код на этом. О ваших обновленных файлах MIDI, я обновлю их как можно скорее, они в вашем репо?
Либарра

darth_llamah
Чт 17 сентября 2015 г. 15:37
Либарра написала:@darth_llamah: Спасибо за тестирование кода в Linux!. Вы пробовали закомментированные строки в примере эскизов?, Я думаю, что один из ключей Windows не работает в Gnome для отображения обзора. В примере джойстика, если вы хотите использовать желаемое имя для номера светодиода (я исправим его в следующем обновлении репо) или вы сможете прокомментировать линию Pinmode, я только если кто -то хотел использовать Мини привел к чему -либо.

Либарра
Чт 17 сентября 2015 г., 17:44
darth_llamah написал: У меня не было времени для более широких тестирования, я попробую завтра. Я не могу сказать, работает ли правый Windoze в Cinnamon- у моего ноутбука есть только один ;)

Либарра
Чт 17 сентября 2015 г., 18:05
Мадиас написал: MIDI обновление: Извините, но репо github совершенно устарел, я использую местную «вещь» (много восстановления), но прежде чем я отдаю ее, я сделаю большую уборку и напишу (лучшие) примеры. Потому что мне нужна MIDI в моем текущем проекте, я бы предложил, что я работаю над этим, чтобы получить шанс увидеть, что не работает, а что должно быть польским. (Как избавиться от необходимости в каждом эскизе, конвою всех этих "void usbmidi :: xxx"))))

darth_llamah
Пт 18 сентября 2015 г., 7:57 утра
Либарра написала:Я обновил пример мыши с помощью линии, используя мышь.Движение (x, y, w), он работает в Win7, но еще не тестировал в Linux. Сначала я попробовал только движение X и Y, и казалось, что оно не сработало, поэтому я проверил пример и добавил эту новую линию в примере мыши. Помните, что движение представлено подписанным символом, поэтому с 1-127 вы делаете позитивное движение (справа и вниз), а с 128-255 вы делаете негативное движение. То же самое с движением колеса.
Либарра

Либарра
Пт 18 сентября 2015 г., 19:37
darth_llamah написал: Мышь.MOVE () из примера работает нормально, также мне не нужно заботиться о значениях x и y- HID использует стандарт PS/2 ;)

Либарра
Пт 18 сентября 2015 г., 8:02 вечера
Дорогой Матиас,


Проверив отчет о джойстике (взятый из Teensy), я заметил, что в нем есть раздел с набором использования в качестве указателя, и отчет мыши имеет использование в качестве указателя, так что это может быть причиной, по которой пример джойстика перемещает ваш указатель мыши вокруг экран : D . Но зачем OSX спрятать, отличное от других OSS, не предполагалось быть стандартным? :ржу не могу:


Либарра

darth_llamah
Сб 19 сентября 2015 г. 8:15 утра
Либарра написала:darth_llamah написал: Мышь.MOVE () из примера работает нормально, также мне не нужно заботиться о значениях x и y- HID использует стандарт PS/2 ;)

Либарра
Солнце 20 сентября 2015 12:40
darth_llamah написал: Протокол мыши PS/2 довольно хорошо описан в Руководство по взаимодействию с помощью синаптики (PDF -предупреждение), раздел 2.1- «Совместимый относительный режим мыши» (который я использую) и раздел 3- «Пс/2 протокол». Однако они описывают данные о движении x и y как подписанный символ.

darth_llamah
Солнце 20 сентября 2015 г. 9:58 утра
Либарра написала:Спасибо за ссылку.

Либарра
Вторник 22 сентября 2015 г., 4:04
darth_llamah написал: Нет проблем (помимо кода, это взято из ваших примеров ;) )

darth_llamah
Вторник 22 сентября 2015 г. 15:01
Я пытаюсь добавить поддержку USB HID/MIDI в общий STM32F103C- я тестирую с помощью платы Blue Pills.
Когда на борту на борту все работает нормально.
Но когда нет загрузчика, я должен назвать HID.begin () или midiusb.begin () Inside Setup () в противном случае устройство не будет перечислено на ПК.
Вопрос- когда Bootloader выполняет «Main» программы, MCU имеет USB-подсистему, все еще готовую к работе (и просто повторно разъединяется как устройство HID)?

Мадиас
Вторник 22 сентября 2015 г. 15:59
Интересная вещь.
В моем оригинальном Midi Repo я всегда midiusb.begin () включен в настройку. В противном случае это не сработало.
Но почему есть интерфейс между загрузчиком и основной программой. Я не знаю. Кстати, я не пробовал это на общих досках, но я должен сделать это для моего главного проекта.
Так что я бы сказал, кроме интересного вопроса, вы всегда должны включать Midiusb.начинать () быть на безопасной стороне.
Вы только пробуете MIDI или собираетесь работать с этим?
Если да, я подтолкнусь к обновлению библиотеки MIDI (например, поддержка SYSEX полностью работала, но я не использовал ни один из включенных файлов SYSEX)

darth_llamah
Вторник 22 сентября 2015 г., 16:18
Мадиас написал:Интересная вещь.
В моем оригинальном Midi Repo я всегда midiusb.begin () включен в настройку. В противном случае это не сработало.

darth_llamah
Чт 24 сентября 2015 г. 8:52 утра
Извините за двойную публикацию.
Либарра Объединенная поддержка общих плат STM32F103C в его репо.
Не могли бы вы проверить, работает ли USB для других досок, чем Blue Pill, как с загрузчиком, так и без загрузки?
ПРИМЕЧАНИЕ:
Моя синяя таблетка без загрузки, необходимого для использования HID.begin (), midiusb.begin () или сериал.begin () в setup () в противном случае плата не была перечислена. Также я еще не проверил новый пример джойстика.

Либарра
Чт 24 сентября 2015 г., 17:43
Всем привет,

Я создал ветвь (usb_libs) репо, где я удалил файлы CDCACM/Serial, HID и MIDI из ядра, а также USB -инициализация из Boards_setup.Файлы CPP папки STM32F1. Затем я добавил их в качестве отдельных библиотек для STM32F1.

Я думаю, что это поможет проверить новые USB -функции на других досках. В этом новом филиале нет меню типа USB, библиотека типа USB, которую вы хотите использовать, должна быть включена в каждый эскиз, и ***.begin () должен быть вызван в Setup (). Если вы используете библиотеку USB, отличную от сериала, вам нужно сбросить плату вручную, чтобы загрузить новый эскиз.

Проверьте и расскажите, что вы думаете.


Либарра

Либарра
Чт 24 сентября 2015 г., 17:47
darth_llamah написал: На данный момент я проверил только в том, правильно ли перечислена доска, у меня нет никакого программного обеспечения для MIDI на ноутбуке и опыта с контроллерами MIDI (я использую только «аналоговую» скрипку ;) )

victor_pv
Пт 25 сентября 2015 г. 1:31
darth_llamah написал:Извините за двойную публикацию.
Либарра Объединенная поддержка общих плат STM32F103C в его репо.
Не могли бы вы проверить, работает ли USB для других досок, чем Blue Pill, как с загрузчиком, так и без загрузки?
ПРИМЕЧАНИЕ:
Моя синяя таблетка без загрузки, необходимого для использования HID.begin (), midiusb.begin () или сериал.begin () в setup () в противном случае плата не была перечислена. Также я еще не проверил новый пример джойстика.

Либарра
Пт 25 сентября 2015 г. 2:40
victor_pv написал: Если я правильно помню, у нас есть код для повторного выступления USB в 2 местах:
1.-В самом загрузчике.
2.-В основном файле я считаю, что boards_setup, когда он устанавливает сериал USB или прямо перед ним.

Я не следил за этой темой, чтобы увидеть все модификации, но возможно, что повторная рогатка в ядре была сделана в сериале USB.Begin () код, и это не делается сейчас после изменений для HID?

Пожалуйста, проверьте board_setup.CPP и проверьте, есть ли какой-либо код, говорящий о том, что для USB-повторения прямо вокруг сериала.начинать.

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

victor_pv
Пт 25 сентября 2015 г., 4:21
Дело в том, что код предназначен для перечисления в общей плате (не кленовые варианты с их специальной схемой USB).
В кленовых досках перечисление осуществляется путем переключения другой булавки.
Теперь я не помню, заканчивался ли ядром, чтобы просто использовать этот метод во всех платах (включены клена). Если это так, вы можете удалить generic_bootloader ifdef.
Но если нет, то вместо того, чтобы удалить его, возможно, мы должны изменить это для чего -то другого.
Если у вас, ребята, есть время, попробуйте и посмотрите, работает ли это для обоих типов досок и с/без загрузки, удалив Ifdef.
Если это не удастся в клонах клена и клена, то лучше всего изменить IFDEF, чтобы проверить что -то другое.
Я написал код для переключения булавки, но Роджер - это то, что нашел подходящее место для его использования и правильного ожидания, поэтому он лучше знает, почему в нем есть #ifdef. Я был бы удивлен, если бы он вспомнит, хотя он всегда исправляет и добавляет вещи, предлагаемые всем. Даже я не помню, почему мы поместили это туда, и я уверен, что он объяснил мне необходимость в ifdef.

Где -то может быть поток со всеми деталями.

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

Либарра
Пт 25 сентября 2015 г. 5:26 утра
victor_pv написал:Дело в том, что код предназначен для перечисления в общей плате (не кленовые варианты с их специальной схемой USB).
В кленовых досках перечисление осуществляется путем переключения другой булавки.
Теперь я не помню, заканчивался ли ядром, чтобы просто использовать этот метод во всех платах (включены клена). Если это так, вы можете удалить generic_bootloader ifdef.

darth_llamah
Пт 25 сентября 2015 г., 6:21
victor_pv написал:Я забыл boards_setup.CPP специфичен для каждого варианта. В этом случае, что переключающий код присутствует только в общих вариантах, поэтому должен быть безопасным для удаления IFDEF и позволить ему выполнять в каждом случае, с загрузчиком и без загрузки и без него.

Либарра
Сб 26 сентября 2015 г. 14:11
darth_llamah написал: Кстати Mouse отлично работает в Android- Moto G XT1039 с Stock Android 5.1, клавиатура и джойстик еще не протестированы

darth_llamah
Сб 26 сентября 2015 г. 14:45
Либарра написала:Будучи ли синяя таблетка с загрузкой загрузчика в качестве DFU, чтобы загрузить новый эскиз? Может быть, избавиться от IFDEFS позволит перечисленной доске как COM. Если вы согласны, я сделаю это изменение.

Либарра
Сб 26 сентября 2015 г. 16:18
darth_llamah написал: Да, синяя таблетка с загрузчиком перечислена как устройство DFU. Пожалуйста, совершите, но я могу проверить изменения завтра.

darth_llamah
Солнце 27 сентября 2015 12:11
Либарра написала:darth_llamah написал: Да, синяя таблетка с загрузчиком перечислена как устройство DFU. Пожалуйста, совершите, но я могу проверить изменения завтра.

Либарра
Солнце 27 сентября 2015 г. 15:00
darth_llamah написал: Ничего не изменилось- с помощью последовательного примера для загрузчика сборочных сборов с компиляцией.

darth_llamah
Солнце 27 сентября 2015 18:41
Либарра написала:Не могли бы вы добавить сериал.конец(); перед сериалом.начинать(); И, может быть, небольшая задержка между ними?

Либарра
Пн 28 сентября 2015 г. 22:17
darth_llamah написал: Сейчас хуже.
Синяя таблетка с загрузчиком не перечисляется, когда HID, MIDI или сериал используется- всегда 1EAF: 0003 (DFU)
Синяя таблетки без загрузки- HID и MIDI работа, сериал не работает на All-Device не перечислена.

darth_llamah
Ср 30 сентября 2015 г. 9:46
Либарра написала:Я снова добавил ifdef serial_usb без проверки generic_bootloader в boards_setup.CPP. В досках.Файл TXT Я добавил флаг сборки Serial_USB для общего STM32F103C с использованием метода серийной загрузки. Я собрал последовательный пример с этими изменениями, и он составил, но я не знаю, действительно ли он работает на общей плате.

РЕДАКТИРОВАТЬ:

Я совершил изменения в филиале USB_LIBS

Либарра
Чт 01 октября 2015 г. 3:29
darth_llamah написал: Синяя таблетки без загрузки- серийный сериал работает хорошо, без ошибок с компиляцией.
Синяя таблетка с загрузчиком- нет ошибки с последовательным примером компиляции, но устройство не повторно вытекает (всегда DFU)

darth_llamah
Чт 01 октября 2015 г., 7:33 утра
Либарра написала:Является ли сериал, единственный, у кого есть проблемы с загрузчиком, или Hid, а MIDI также показывают как DFU?

Либарра
Пт 02 октября 2015 г., 16:44
Я обновил ветви Master и USB_LIBS, добавив флаги Serial_USB для других методов загрузки общего STM32F103C. Я думаю, что это выполнит *.begin () в boards_setup.CPP, так что нет необходимости звонить в настройку (). При использовании usb_libs, то *.begin () все еще должен использоваться в Setup ().
darth_llamah написал: Не помогает- все еще dfu

darth_llamah
Сб 3 октября 2015 г., 16:08
Либарра написала:Может быть, это поможет увеличить задержку.

Либарра
Сб 3 октября 2015 г., 19:33
darth_llamah написал: Увеличение задержки помогло, запрос на вытягивание в ожидании.
Я увеличил задержку с 256 до 1024 (512 было недостаточно). Может быть, подойдет менее 1024, но это работает надежно.

darth_llamah
Сб 3 октября 2015 г., 21:13
Либарра написала:darth_llamah написал: Увеличение задержки помогло, запрос на вытягивание в ожидании.
Я увеличил задержку с 256 до 1024 (512 было недостаточно). Может быть, подойдет менее 1024, но это работает надежно.

Либарра
Солнце 04 октября 2015 г. 15:39
darth_llamah написал: Может быть, это изменение также будет «исправить» общие платы без загрузчика в главном филиале? Я проверю это.

darth_llamah
Солнце 04 октября 2015 г., 17:24
Либарра написала:Я думал, что проблема с главной ветвью заключалась в том, что она была необходима, чтобы добавить ***.begin () в setup ().

Либарра
Вт 06 октября 2015 г. 12:32
darth_llamah написал:Я только начал свежий портативный Arduino 1.6.6 с USB_LIBS Branch, когда я открыл «обновляемые библиотеки» (да, сейчас есть всплывающее окно для этого), я получил:

Mrburnette
Вт 06 октября 2015 г. 12:45
Либарра написала:darth_llamah написал:Я только начал свежий портативный Arduino 1.6.6 с USB_LIBS Branch, когда я открыл «обновляемые библиотеки» (да, сейчас есть всплывающее окно для этого), я получил:

darth_llamah
Вт 06 октября 2015 г. 13:57
Mrburnette написал:я так не думаю... Я бегаю 1.6.6 часа, и у меня нет проблем с ESP8266, Arduino, Teensy3.1, или STM32F1. Моя коробка - Windows 8.1 Полностью исправлен, поэтому я не знаю, в чем проблема, но я не думаю, что мы можем обвинить это в графическом интервале Arduino.
https: // www.Ардуино.cc/en/main/программное обеспечение

Луча

Mrburnette
Ср. 07 октября 2015 г. 12:14
darth_llamah написал: <...>
Ты почасовой Arduino IDE Portable или нет?
Портативный почасовой 1.6.6 не работает ни за один из вилок/филиалов Arduino_stm32. Я знаю, что должен проверить его в среде по умолчанию, но я не хочу испортить свою установку.

darth_llamah
Ср. 07 октября 2015 г., 16:41
Mrburnette написал:По портативному я подозреваю, что вы имеете в виду, что я создал «портативный» каталог?

Либарра
Чт 15 октября 2015 г. 12:54
Всем привет,

Я добавил варианты USB, клавиатуры+мыши и джойстика в меню типа USB в главной ветви. С этим изменением дескриптор отчета будет включать только необходимые части. Я заменил serial_usb на USB_HARDWARE, но только для STM32F1.

Я попытался добавить те же изменения в филиале USB_LIBS, но я нашел проблему. Я хотел использовать #define usb_hid_xxx в эскизе до включения библиотеки HID, но, похоже, компилятор не определил USB_HID_XXX для библиотеки, хотя он определяется до включения. Я думаю, что единственным решением для этого было бы использовать меню, чтобы установить детали описания отчета для Delcared, но, похоже, это не соответствует стилю USB_LIBS 'Style'. Так что сейчас я не внес эти изменения в филиал USB_LIBS.

Что касается опроса, Роджер предложил использовать обезьяну, поэтому я постараюсь настроить ее как можно скорее.


Либарра

Rogerclark
Чт 15 октября 2015 г. 1:03
Но кажется, что компилятор не определял USB_HID_XXX для библиотеки, хотя он определяется до включения Это правильно, #Define только применимо к эскизу, а не к библиотеке (это общая проблема, у нас есть другие вещи, связанные с библиотеками E.G Мы хотели изменить канал SPI в #Define, но это было невозможно)

Единственный способ добавить #Define для библиотеки - включить его в доски.TXT, который передает его платформе.TXT, который затем помещает его в качестве компилятора определить директиву E.глин. -Dusb_hid_xxx

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

Это заканчивается множеством проблем поддержки, потому что люди не читают комментарии в эскизах и не будут устанавливать правильный вариант меню, они просто скажут, что эскиз не работает :-(

Так что в идеале вам нужно будет выработать другой способ сделать это (но я должен признать, что я не могу понять, как, потому что первое место в коде, которое происходит, находится в Main (), что далеко после завершения инициализации USB.

Единственное, что вы можете сделать в Main,-это повторная реэналера USB и переключить тип HID USB, то есть он начинается как USB-последовательный и т. Д.

Это не идеально, но может быть все, что практично

darth_llamah
Чт 15 октября 2015 г., 17:19
Либарра написала:Я добавил варианты USB, клавиатуры+мыши и джойстика в меню типа USB в главной ветви. С этим изменением дескриптор отчета будет включать только необходимые части. Я заменил serial_usb на USB_HARDWARE, но только для STM32F1.

Либарра
Пт 16 октября 2015 г., 4:31
Rogerclark написал:Но кажется, что компилятор не определял USB_HID_XXX для библиотеки, хотя он определяется до включения Это правильно, #Define только применимо к эскизу, а не к библиотеке (это общая проблема, у нас есть другие вещи, связанные с библиотеками E.G Мы хотели изменить канал SPI в #Define, но это было невозможно)

Единственный способ добавить #Define для библиотеки - включить его в доски.TXT, который передает его платформе.TXT, который затем помещает его в качестве компилятора определить директиву E.глин. -Dusb_hid_xxx

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

Это заканчивается множеством проблем поддержки, потому что люди не читают комментарии в эскизах и не будут устанавливать правильный вариант меню, они просто скажут, что эскиз не работает :-(

Так что в идеале вам нужно будет выработать другой способ сделать это (но я должен признать, что я не могу понять, как, потому что первое место в коде, которое происходит, находится в Main (), что далеко после завершения инициализации USB.

Единственное, что вы можете сделать в Main,-это повторная реэналера USB и переключить тип HID USB, то есть он начинается как USB-последовательный и т. Д.

Это не идеально, но может быть все, что практично

Rogerclark
Сб 17 октября 2015 г. 11:56 вечера
Ребята,

Я включен и выключен в течение последних 4 недель, поэтому я только спорадически не отставал от вашей работы.

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

Похоже, вы используете определенную ветвь, как вам нужно изменить платы.TXT, и это может оказать слишком большое влияние на пользователей, которые не хотят USB HID

Не могли бы вы сообщить мне, что, по вашему мнению, будет лучшим способом интеграции ваших изменений в основное репо ?

Спасибо

Роджер

darth_llamah
Солнце 18 октября 2015 г. 10:20 утра
Rogerclark написал:Не могли бы вы сообщить мне, что, по вашему мнению, будет лучшим способом интеграции ваших изменений в основное репо ?

Rogerclark
Солнце 18 октября 2015 г. 10:36
Хорошо

Я буду исследовать, как работает система опроса в PHPBB.

Похоже, это не по умолчанию, и мне, вероятно, придется создать опрос, так как я не уверен, что хочу включить создание опросов для всех пользователей, в противном случае у нас может быть распространение опросов ;-)

Повторное тестирование на других досках.

У меня есть несколько других вариантов, таких как F103VET и F103ZET, но я подозреваю, что, если он работает на BluePill, он будет работать на всех общих платах (за исключением уродливой платы, так как это даже не запустит общий Booloaderer )

darth_llamah
Солнце 18 октября 2015 г. 10:45 утра
Rogerclark написал:Повторное тестирование на других досках.

У меня есть несколько других вариантов, таких как F103VET и F103ZET, но я подозреваю, что, если он работает на BluePill, он будет работать на всех общих платах (за исключением уродливой платы, так как это даже не запустит общий Booloaderer )

Rogerclark
Солнце 18 октября 2015 г. 9:25 вечера
darth_llamah написал:Rogerclark написал:Повторное тестирование на других досках.

На данный момент присутствует только Maple Mini и Generic STM32F103C. Все еще тесты на других досках F103C были бы полезны.

darth_llamah
Солнце 18 октября 2015 г. 9:53 вечера
Rogerclark написал:darth_llamah написал:Rogerclark написал:Повторное тестирование на других досках.

На данный момент присутствует только Maple Mini и Generic STM32F103C. Все еще тесты на других досках F103C были бы полезны.

Rogerclark
Солнце 18 октября 2015 г., 22:46
ХОРОШО

Я вижу изменения специально для общего F103C

Таким образом, эти изменения должны быть применены к другим вариантам

Поскольку у нас уже есть повторная рогатка USB в других местах кода, может быть лучше превратить это в отдельную функцию, а не дублировать ее на каждой плате

Я посмотрю...

Либарра
Солнце 18 октября 2015 г., 22:58
Rogerclark написал:Похоже, вы используете определенную ветвь, как вам нужно изменить платы.TXT, и это может оказать слишком большое влияние на пользователей, которые не хотят USB HID

Rogerclark
Солнце 18 октября 2015 г. 11:04
ХОРОШО..

Не беспокойся

Rogerclark
Сб 24 октября 2015 г., 6:25
ХОРОШО.

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

Администратор PHPBB требует, чтобы опросы были включены вручную для каждого отдельного раздела и подразделения, который занимает очень много времени для администрирования, поэтому я просто собираюсь создать для меня в сборе и объявлениях

Я добавил туда испытательный опрос.


Пожалуйста, не могли бы вы составить свой вопрос и доступные варианты (MAX 10 вариантов разрешен PHPBB) и публикуйте их здесь, и я создам новый пост в сборках и объявлениях, чтобы мы могли провести опрос по этому поводу

Спасибо

Роджер

Либарра
Солнце 25 октября 2015 г. 2:49
Rogerclark написал:ХОРОШО.

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

Администратор PHPBB требует, чтобы опросы были включены вручную для каждого отдельного раздела и подразделения, который занимает очень много времени для администрирования, поэтому я просто собираюсь создать для меня в сборе и объявлениях

Я добавил туда испытательный опрос.


Пожалуйста, не могли бы вы составить свой вопрос и доступные варианты (MAX 10 вариантов разрешен PHPBB) и публикуйте их здесь, и я создам новый пост в сборках и объявлениях, чтобы мы могли провести опрос по этому поводу

Спасибо

Роджер

Rogerclark
Вт 27 октября 2015 г. 12:04
Вы приняли решение о вещах, связанных с Виктором и USB MSC Code?

Или вы хотите, чтобы я создал опрос с этими 3 вариантами?

Либарра
Вт 27 октября 2015 г. 6:31
Rogerclark написал:Вы приняли решение о вещах, связанных с Виктором и USB MSC Code?

Или вы хотите, чтобы я создал опрос с этими 3 вариантами?

Rogerclark
Вт 27 октября 2015 г. 6:50 утра
ХОРОШО.

Я думаю, что нам нужно изменить название на

В каком пути вы предпочитаете управлять USB HID?

1.- В главном филиале и вариантах спрятания через меню (как в случае с Teensyduino).
2.- Как и в филиале USB_LIBS (файлы класса USB -устройства (для последовательных, MIDI и HID) находятся в папке библиотеков).
3.- Какой -то другой путь.


В прошлом у нас были проблемы, где код зависит от вариантов меню, поэтому мой голос был бы за отдельный филиал или в идеале вариант 3.

я.e Сосуществование нескольких USB-устройств

Либарра
Ср 28 октября 2015 г., 6:50 утра
Rogerclark написал:ХОРОШО.

Я думаю, что нам нужно изменить название на

В каком пути вы предпочитаете управлять USB HID?

1.- В главном филиале и вариантах спрятания через меню (как в случае с Teensyduino).
2.- Как и в филиале USB_LIBS (файлы класса USB -устройства (для последовательных, MIDI и HID) находятся в папке библиотеков).
3.- Какой -то другой путь.


В прошлом у нас были проблемы, где код зависит от вариантов меню, поэтому мой голос был бы за отдельный филиал или в идеале вариант 3.

я.e Сосуществование нескольких USB-устройств

Rogerclark
Ср 28 октября 2015 г. 7:03
Я не уверен, что это возможно, но можем ли мы заставить USB повторно вымер, если вы называете что-то вроде HID.начинать() ?

Я знаю, что @ahull смотрел на сериал.begin () и серийный.End (), а затем вызов серийного.начать () снова, и в настоящее время это не работает.

Мы подозреваем, что после сериала.End () был назван, что автобус USB должен быть повторно вытекает при сериале.Begin () был вызван, но я не думаю, что у кого -то было время расследовать (возможно, @ahull 'Andy', но я не уверен)

Я помню, что Leaflabs написали несколько заметок о проблемах, которые у них были с загрузчиком, когда они первоначально написали, так как они хотели поместить серийный и DFU в загрузчик, и для эскиза для связи с загрузчиком, чтобы использовать последовательный USB.

Однако из того, что я помню, Windows не позволил бы одному устройству использовать 2 разных драйвера, я.e драйвер DFU и виртуальный серийный драйвер.

Я не могу найти ссылку на информацию на данный момент, но, возможно, она устарела и не применяется к Windows 7 и новым

(Извините, я не эксперт в вопросах USB)

Либарра
Ср 28 октября 2015 г. 8:01
Rogerclark написал:Я не уверен, что это возможно, но можем ли мы заставить USB повторно вымер, если вы называете что-то вроде HID.начинать() ?

Я знаю, что @ahull смотрел на сериал.begin () и серийный.End (), а затем вызов серийного.начать () снова, и в настоящее время это не работает.

Мы подозреваем, что после сериала.End () был назван, что автобус USB должен быть повторно вытекает при сериале.Begin () был вызван, но я не думаю, что у кого -то было время расследовать (возможно, @ahull 'Andy', но я не уверен)

Я помню, что Leaflabs написали несколько заметок о проблемах, которые у них были с загрузчиком, когда они первоначально написали, так как они хотели поместить серийный и DFU в загрузчик, и для эскиза для связи с загрузчиком, чтобы использовать последовательный USB.

Однако из того, что я помню, Windows не позволил бы одному устройству использовать 2 разных драйвера, я.e драйвер DFU и виртуальный серийный драйвер.

Я не могу найти ссылку на информацию на данный момент, но, возможно, она устарела и не применяется к Windows 7 и новым

(Извините, я не эксперт в вопросах USB)

Rogerclark
Ср 28 октября 2015 г. 8:36 утра
Спасибо, Либарра

Я только посмотрел на USB -дескрипторы в загрузчике, так как мне пришлось внести некоторые изменения, и у него есть только одно устройство (DFU), но у этого устройства есть подкафуции Muliple "Alt".

Мне нужно выкопать мой Arduino Pro Mini, так как я думаю, что он имеет серийный USB, а также может быть скрыт (хотя я не могу вспомнить, как вы его включили)

Я быстро искал USB -композитное устройство и нашел это

https: // msdn.Microsoft.com/en-us/librar ... 85%29.aspx

https: // msdn.Microsoft.com/en-us/librar ... 85%29.aspx

Так что, по крайней мере, под окнами, теперь, похоже, это может сделать это, и из того, что я понимаю из документа, написанного Leaflabs, это всегда было в порядке на Linux (и, вероятно, в порядке на OSX)

Так...

Я думаю, что нам действительно нужно исследовать, как построить составной дескриптор USB -устройства, так как это дало бы нам лучшее из обоих миров.e Не нужно связываться с меню или филиалами в коде

Однако я понимаю, что это нелегко.

darth_llamah
Ср 28 октября 2015 г. 9:20 утра
Еще раз я имею в виду Hid, Master Branch (для Arduino's Hid, для Arduino (для Arduino <= 1.6.5). Если я правильно прочитал код, дескриптор устройства построен на лету:
-всегда присутствует сериал USB, если не выбрано «нет ядра USB»
-Каждое устройство HID требует ***.begin (), а затем его дескриптор добавляется к по умолчанию
В итоге у Леонардо нет определенных устройств. Пример эскиза: http: // llamah.no-ip.org/usb_ir_remote_control.Ино

Mrburnette
Ср 28 октября 2015 г. 12:29
Rogerclark написал: <...>
Мне нужно выкопать мой Arduino Pro Mini, так как я думаю, что он имеет серийный USB, а также может быть скрыт (хотя я не могу вспомнить, как вы его включили)
<...>

Rogerclark
Ср 28 октября 2015 г., 19:36
Хорошо

HID Nicohood, Master Branch (для Arduino <= 1.6.5) Мне нужно скачать этот репо и посмотреть, как это работает

Ахулл
Чт 29 октября 2015 г. 1:38
Либарра написала:
Я думаю, что в одном из постов этой темы я включил код эскиза, который называется Serial.begin () и серийный.End (), чередование их, каждый раз, когда нажата кнопка Maple Mini, и она работала для меня (Maple Mini был «подключен», «отключен» и «подключен»), возможно, он сработал из -за задержки между каждым нажатие кнопки.

Либарра
Чт 29 октября 2015 г., 7:30 утра
Rogerclark написал:Так что, по крайней мере, под окнами, теперь, похоже, это может сделать это, и из того, что я понимаю из документа, написанного Leaflabs, это всегда было в порядке на Linux (и, вероятно, в порядке на OSX)

Так...

Я думаю, что нам действительно нужно исследовать, как построить составной дескриптор USB -устройства, так как это дало бы нам лучшее из обоих миров.e Не нужно связываться с меню или филиалами в коде

Однако я понимаю, что это нелегко.

Керу
Чт 29 октября 2015 г., 17:55
Есть ли способ использовать серийный и спрятать ? Это то, что называется «композитный USB» ?
Повлияет ли это на мигание или это не имеет значения ?
Спасибо.

darth_llamah
Чт 29 октября 2015 г. 18:33
Керу написал:Есть ли способ использовать серийный и спрятать ?

Rogerclark
Чт 29 октября 2015 г., 19:53
Re: Доски всегда показывают как 3 устройства

На данный момент, я думаю, что есть все еще устаревший код, который вызовы Begin () в серийном классе USB, во время инициализации.

Это потому, что в исходном примере Leaflabs у них не было никаких вызовов для серийных.begin () в setup ()

Я знаю, что это сломает код, я.E Люди, которые не поставили сериал.begin () в их настройке (), но если мы удалим вызов USB Serial Begin из кода инициирования, плата вообще не будет показывать любое USB -устройство.

Так что, если кто -то захотел спрятаться, он мог бы просто назвать Hid.начинать () вместо этого.

Я думаю, это становится все сложнее, если они хотят серийно и спрятать, и другие вещи e.глин. MIDI или массовое хранилище, потому что нам нужно динамически продолжать добавлять больше устройств в композитное устройство и ожидать, что WED продолжает принуждать перечисление.

(Однако у меня есть чувство, что, возможно, то, что происходит на AVR Leonardo
(но у меня не было времени проверить)

Возможно, работа вокруг состоит в том, чтобы иметь дополнительные версии начала, которые не заставляют перечисление, чтобы мы могли отложить перечисление до последнего начала () для USB в Setup ()

Керу
Чт 29 октября 2015 г., 20:32
darth_llamah написал: Я не могу сказать, я работал только над тем, чтобы сделать HID работать над BluePill

darth_llamah
Чт 29 октября 2015 г., 20:46
Керу написал:Является ли BluePill чем -то конкретным или «минимальная система STM32» от eBay в основном это ?

Керу
Чт 29 октября 2015 г., 20:56
Хорошо, это «чертех», у меня тоже.
Сброс заставляет мою доску вспыхивать на несколько секунд, затем остановитесь, поэтому я думаю, что плата и загрузчик в порядке.
Я проверю, является ли это моей системой. Спасибо, я не могу дождаться, чтобы попытаться использовать HID !

это то, что я получаю, когда сбрасываю доску [27011.426972] usb 1-2: USB disconnect, device number 36 [27011.723089] usb 1-2: new full-speed USB device number 37 using xhci_hcd [27011.852363] usb 1-2: New USB device found, idVendor=1eaf, idProduct=0003 [27011.852368] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [27011.852370] usb 1-2: Product: Maple 003 [27011.852372] usb 1-2: Manufacturer: LeafLabs [27011.852374] usb 1-2: SerialNumber: LLM 003 [27013.195698] usb 1-2: USB disconnect, device number 37 [27013.464493] usb 1-2: new full-speed USB device number 38 using xhci_hcd [27013.594097] usb 1-2: New USB device found, idVendor=1eaf, idProduct=0024 [27013.594101] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [27013.594104] usb 1-2: Product: Maple [27013.594105] usb 1-2: Manufacturer: LeafLabs [27013.594257] usb 1-2: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes [27013.595855] input: LeafLabs Maple as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:1EAF:0024.0017/input/input37 [27013.648913] hid-generic 0003:1EAF:0024.0017: input,hidraw4: USB HID v1.10 Mouse [LeafLabs Maple] on usb-0000:00:14.0-2/input0

darth_llamah
Чт 29 октября 2015 г., 21:25
Керу написал:Хорошо, это «чертех», у меня тоже.
Сброс заставляет мою доску вспыхивать на несколько секунд, затем остановитесь, поэтому я думаю, что плата и загрузчик в порядке.

Керу
Чт 29 октября 2015 г., 21:30
Под Linux это более сложно вписаться в окно времени DFU.
Что работает для меня:
1. Проверьте эскиз (только компилируется, без загрузки)
2. Нажмите и удерживайте кнопку сброса, USB подключен
3. Нажмите на загрузку
4. Когда панель прогресса переходит на кнопку сброса ~ 50%
Я попытался, но, кажется, не могу получить правильное время
Альтернатива- Поиск режима непрерывной загрузки- для BluePill, который требует от короткого из одного из выводов GPIO до GND или 3.3V (не помните, какой из них и если это был GND или нет). Я проверю спасибо за совет
DFU загрузчик для Linux не ждет устройства. Может быть, может ждать dfu -util -l Чтобы сказать что -то, нет?

Керу
Чт 29 октября 2015 г., 21:40
Похоже, что сброс UTIL пытается сбросить что-то вроде /dev /ttyacmx (или usbx), но, поскольку я прошивал устройство как скрытое, оно не найдет последовательное устройство, чтобы дать `restet '

Rogerclark
Пт 30 октября 2015 г. 12:54
Ах

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

Обычно IDE отправляет специальную строку сброса и переключает DTR и т. Д., Который ядро ​​читает и интерпретирует как команду перезагрузки, а затем перезагружается, который затем запускает отладчик.

Так что, если у вас нет сериала, он никогда не сработает.

Если у вас есть физическая кнопка на вашей плате, вы можете удержать ее во время начальной последовательности мигающих светодиодов, чтобы она держалась в режиме DFU, в противном случае загрузчик просто прыгнет к коду эскиза менее чем через секунду (я не могу Помните точное время)

Керу
Пт 30 октября 2015 г. 1:51
Спасибо за разъяснение, теперь все имеет смысл :)

Ахулл
Сб 31 октября 2015 г. 12:09
Ахулл написал:Либарра написала:
Я думаю, что в одном из постов этой темы я включил код эскиза, который называется Serial.begin () и серийный.End (), чередование их, каждый раз, когда нажата кнопка Maple Mini, и она работала для меня (Maple Mini был «подключен», «отключен» и «подключен»), возможно, он сработал из -за задержки между каждым нажатие кнопки.

Керу
Сб 05 декабря 2015 г., 4:10
Я не знаю, может ли это помочь или даже если это правильное место, извините, если это не так ... Но я думал, что поделюсь с тех пор, как эта ветка заинтересована в использовании общей платы в качестве клавиатуры.

Flabbergast здесь http: // работоспособность.net/мастерская-F7/TMK- ... ML#P270371 Сделал прошивку TMK работать на универсальном STM32F103 и Maple Mini Baide, используя Chibios. Можно также сохранить загрузчик STM32Duino.

Luc_exe
Ср. 01 июня 2016 г. 14:37
Скачать в оригинальном посте спас мою жизнь.

Мне пришлось создать список из 500 1-проводных ибуттонов (DS1990A), только что выбрал USB-клавиатуру + мышь из меню и соединил ее с 1-проводной библиотекой, а также небольшим эскизом, чтобы избежать всей тяжелой работы и общих ошибок. Чтение небольшого гравированного ключа каждого ibutton.

Таким образом, 2 часа кодирования и тестирования + 10 минут до без ошибки. Прочитайте 500 устройств, вместо 10 часов, выполняя это вручную и, вероятно, со многими ошибками.

Ниаш
Вторник 09 августа 2016 11:50
Привет,
Спасибо за все усилия по созданию STM32Duino & «Либарра» за то, что он привлек USB-HID в STM32Duino.
Я пытаюсь сделать USB-Raw Hid с вилкой Либарры. Мои выводы на данный момент заключаются в том, что от Maplemini до ПК работает нормально, тогда как другой способ не происходит. Datain Endpoint 1, настроенная с атрибутами прерываний & DataOut Endpoint 2 в качестве атрибутов на объемах. Основы отчета о необработанном сетке такие же, как определены в USB_HID.C Я прилагаю усилия, искать другие проекты, понимаю & Изменение в STM32DUINO. Я обновлю, когда сделаю некоторый прогресс.
Любые входные данные?
Спасибо.

Rogerclark
Вторник 09 августа 2016 г., 21:39
Есть ветвь репо, где я интегрировал различные изменения USB



https: // github.com/rogerclarkmelbourne/ ... Адмидихид

Я надеялся объединить это обратно в мастер репо, но проблема в том, что, если пользователь выберет любое USB -устройство, кроме последовательного, он не сможет загрузить с загрузчиком, так как нет способа сбросить процессор, кроме как через последовательный ( в данный момент)

В идеале нам нужно композитное устройство, которое всегда имеет последовательное, а также любой другой Devi Es, который хочет пользователь, но я не являюсь экспертом в USB и не имею времени написать это самому самому

Саймонф
Вторник 09 августа 2016 11:41
Rogerclark написал:
Я надеялся объединить это обратно в мастер репо, но проблема в том, что, если пользователь выберет любое USB -устройство, кроме последовательного, он не сможет загрузить с загрузчиком, так как нет способа сбросить процессор, кроме как через последовательный ( в данный момент)

Rogerclark
Вторник 09 августа 2016 11:44
Если вы цикл питания или нажимаете сброс, вы попадаете в загрузчик, но большинство людей не хотят этого делать

Ахулл
Ср 10 августа 2016 г., 7:40
Эта идея, возможно, была предложена ранее, но было бы возможно повторно размер устройства способом, аналогичным Cypress Cy7c68013a series 8051 на основе устройств.

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

Cologne86
Пт 16 сентября 2016 г. 2:17 утра
привет,
Сначала спасибо за отличную работу
Я построил небольшой джойстик, и библиотека идеально подходит для этого.
У меня есть только вопрос о PB10. Кажется, внутренний подтягивание работает на сериал, но не для джойстика.
Может это быть? Я мне кажется странным : D У меня нет проблем с другими 10 кнопками.

Я постараюсь использовать еще одну булавку, так что это, вероятно, вообще не будет проблемой.

Петр
Сб 01 октября 2016 г. 13:52
Rogerclark написал:Есть ветвь репо, где я интегрировал различные изменения USB
https: // github.com/rogerclarkmelbourne/ ... Адмидихид
Я надеялся объединить это обратно в мастер репо, но проблема в том, что, если пользователь выберет любое USB -устройство, кроме последовательного, он не сможет загрузить с загрузчиком, так как нет способа сбросить процессор, кроме как через последовательный ( в данный момент)

ЭДНА
Пт 11 ноября 2016 г. 18:00
Rogerclark написал:Есть ветвь репо, где я интегрировал различные изменения USB



https: // github.com/rogerclarkmelbourne/ ... Адмидихид

Я надеялся объединить это обратно в мастер репо, но проблема в том, что, если пользователь выберет любое USB -устройство, кроме последовательного, он не сможет загрузить с загрузчиком, так как нет способа сбросить процессор, кроме как через последовательный ( в данный момент)

В идеале нам нужно композитное устройство, которое всегда имеет последовательное, а также любой другой Devi Es, который хочет пользователь, но я не являюсь экспертом в USB и не имею времени написать это самому самому

Либарра
Пн 15 мая 2017 г. 1:52
Привет, ребята, извините за довольно долгое время без общения с моей стороны...

Я только что обновил свой репо. Теперь, если вы выберете какой -либо из вариантов HID, он также будет включать USB -сериал, поэтому вы можете использовать как серийные, так и скрытые интерфейсы в одном и том же эскизе.

Теперь Maple Mini (у меня нет других плат для тестирования) указан как композитное устройство с серийными и спрятанными интерфейсами, хотя, если вы используете «серийный» тип USB, он будет перечислен так же, как всегда. Если у вас есть какие -либо проблемы в Windows, когда устройство не распознается, оно может помочь в Unistalling его и проверить наличие аппаратных изменений в диспетчете устройства.

Джо Крэбхаммер
Чт 18 мая 2017 г., 3:54
Либарра написала:Привет, ребята, извините за довольно долгое время без общения с моей стороны...

Я только что обновил свой репо. Теперь, если вы выберете какой -либо из вариантов HID, он также будет включать USB -сериал, поэтому вы можете использовать как серийные, так и скрытые интерфейсы в одном и том же эскизе.

Теперь Maple Mini (у меня нет других плат для тестирования) указан как композитное устройство с серийными и спрятанными интерфейсами, хотя, если вы используете «серийный» тип USB, он будет перечислен так же, как всегда. Если у вас есть какие -либо проблемы в Windows, когда устройство не распознается, оно может помочь в Unistalling его и проверить наличие аппаратных изменений в диспетчете устройства.

Петр
Чт 18 мая 2017 г. 5:16 утра
Я заметил это. Это, очевидно, лучше, чем моя идея с переключением между интерфейсами. Теперь, если @rogerclark может включить его в основное репо?

Мамрезо
Чт 18 мая 2017 г. 12:41
Петр написал:Я заметил это. Это, очевидно, лучше, чем моя идея с переключением между интерфейсами. Теперь, если @rogerclark может включить его в основное репо?

Либарра
Чт 18 мая 2017 г. 14:59
Джо Крэбхаммер написал: Привет. Плакат в первый раз здесь. Вы решили блокировщик, предотвращающий эти важные обновления HID, попасть в мастер, и никто не замечен :плакать:

Петр
Пт 19 мая 2017 г., 21:46
Либарра написала:Привет, ребята, извините за довольно долгое время без общения с моей стороны...
Я только что обновил свой репо.

Либарра
Пт 19 мая 2017 г. 22:19
Петр написал:Где твоя репо? Я пытался искать в ваших постах, но не смог его найти.

Петр
Пт 19 мая 2017 г. 22:24
Только Роджер знает, является ли PR против его хозяина предпочтительным.

Rogerclark
Сб 20 мая 2017 г., 2:12
Я могу попытаться объединить Мастер обратно в Адмидихид и посмотреть, втянуты ли изменения от мастера без столкновений.

В качестве альтернативы, поскольку название филиала Addmidihid смутило много людей, я мог бы удалить эту ветвь и поднять мастер @Libarra в новую филиал Usbmidihid

Петр
Сб 20 мая 2017 г. 8:10
Последнее звучит как минимальная работа для вас обоих, что хорошо во времена, когда все заняты, работая над многими вещами.

Либарра
Сб 20 мая 2017 г. 13:56
Rogerclark написал:Я могу попытаться объединить Мастер обратно в Адмидихид и посмотреть, втянуты ли изменения от мастера без столкновений.

В качестве альтернативы, поскольку название филиала Addmidihid смутило много людей, я мог бы удалить эту ветвь и поднять мастер @Libarra в новую филиал Usbmidihid

Rogerclark
Сб 20 мая 2017 г., 22:37
Можете ли вы сказать мне хорошее имя для этой ветви, так как я знаю, что было много, если путаница в отношении имени, которое я дал старому филиалу.

AG123
Сб 20 мая 2017 г. 11:04
Я на самом деле не против USB-HID как композитного устройства, просто я думаю, что это намного лучше, как *библиотека *, я.эн. это должна быть отдельная реализация и оставлять USB-сериал в ядре нетронутой. Это так, что для обычных случаев, это было бы просто USB-сериалом, это минимизирует осложнения для различных вариантов использования и платформ (Windows, Linux, Mac и т. Д.).

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

Библиотека должна быть задокументирована таким образом, чтобы использовать эту библиотеку.txt, это так, чтобы альтернативная реализация USB из библиотеки может быть использована.
(Прочитайте комментарий Роджера ниже, редактируя платформы.TXT и Undef Serial_USB могут не потребоваться, одна концепция можно назвать USB.End () Чтобы завершить текущее устройство, затем потяните D+ / D- LOW на 10 мс (USB-сброс), чтобы хост начал повторный разъединение USB-устройств, в то же время мы называем новый USB.Begin () реализация и начните как новый класс USB -устройства. Эта концепция * очень полезна *, поскольку это означает, что у вас может быть * набросок *, который работает с USB-серии, спросите пользователя, какое USB-устройство хочет пользователь, затем выполните сброс USB (D+/D- Low 10 мс) и деформируется в новый класс USB -устройства) : mrgreen:

Это будет предпочтительным подходом, что касается «обычных» случаев, обычно можно ожидать, что там в основном серийный интерфейс, и неудивительно, что Serial and Serialusb чаще всего используется для взаимодействия Arduino - Host, включая простой печати и приема команд / данные как пользовательский интерфейс.

Проблема, конечно, в том, что помимо USB-сериала, может быть USB HID, USB Mass Storage, USB CDC Ethernet, USB Audio и многие другие полезные классы USB-устройства. Учитывая ограниченную оперативную память и возможные осложнения и возможные конфликты, а также просто использование вариантов, было бы лучше, если бы классы USB -устройства будут абстрагированы как «библиотеки» так что если кто-то хочет использовать различный класс устройств USB, сначала следует «отключить» USB-сериал, редактируя платформы.текст


Я на самом деле очень хочу включить «USB Core Core Middleware» (я думаю, что распределен в этих вещах ST'Cube HAL), в которые на самом деле ST включал в себя реализации классов устройств (особенно CDC (E.глин. USB-сериал), USB Mass Storage, USB-HID, USB-AUDIO) вместе с расширяемым обычным «USBCORE». Я думаю, что это можно найти как в ядре STM32GENERIER, так и в ядре STM, просто я не слишком уверен, могут ли «Условия лицензии» определенные проблемы. Последствия включения этих кодов ST. Некоторые из них, по -видимому, имеют происхождение от Keil, заключается в том, что они превращают эти устройства STM32 в USB -устройства с помощью готовой реализации класса USB -устройства для популярных классов устройств E.глин. USB Mass Storage, HID, CDC, Audio и т. Д

Альтернатива, конечно, в том, чтобы реализовать его схожим по духу с этой реализацией USB HID, но, как я бы предпочел как «библиотеки», чтобы она мог быть распределена как часть «основного» набора библиотек без возможных осложнений

всего 2 цента

Rogerclark
Сб 20 мая 2017 г. 11:22
Наличие других типов USB в качестве библиотеки кажется хорошей идеей, если его технически возможно.

Я вспоминаю демонстрационную эскиз USB Mass Storage, который я давно пробовал, который работал.

Из того, что я помню, я думаю, что код инициализации вызывает серийный USB Begin (), чтобы пользователям не нужно это делать.

Но мы можем позвонить в Serial USB End (), чтобы убить его, а затем позвонить USB HID начать сбросить USB -автобус и спрятать вместо сериала.


Я думаю, однако, что удаление серийного USB начало может быть не хорошей идеей, так как это может сломать множество существующих эскизов

AG123
Сб 20 мая 2017 г. 11:34
Я кратко выкапываю пальцы ног, только чтобы понять, насколько сложным может быть стек USB -протоколов
http: // www.STM32duino.com/viewtopic.PHP ... 367#P27723

эн.глин. Чтобы внедрить USB -хранилище массового хранилища, нужно в основном программировать устройство SCSI и перевести эти команды SCSI и взаимодействовать с SD -картой, я думаю, что это один из популярных сценариев
Усилия которого не меньше, чем выполнение полноценного «приложения / эскиза», это может быть буквально «эскиз».

И я предполагаю, что внедряет такие вещи, как USB-CDC-Ethernet (я.эн. USB Ethernet Dongle) может быть так же сложным
Тогда есть желание основного «общего» компонента USB -основного ядра, который мы могли бы подключить к этому «ядро» классы для этого «ядра» и позволить этому «USB Core» выполнять некоторые работы USB -протокола, которая является обычным явлением.

Это «USB-ядро» на самом деле найдено в Stack ST Cube MX USB Protcol, ST буквально назвал это «USB Middle-Ware» или, скорее, «библиотека USB-устройств»
USB -библиотека USB USB Library USB USB STM32
http: // www.ул.com/resource/en/user_manu ... 108129.PDF

И ST буквально разработал некоторые классы устройства, а также описанные ранее. Единственная вещь, конечно, мы могли бы просто использовать эти коды ST Cube MX, которые казались довольно изобретенными (обратите внимание на некоторые из них * частичные * реализации) сами по себе?

AG123
Сб 20 мая 2017 г. 11:40
Вернемся к этой теме, я думаю, что подход «библиотеки» в значительной степени лучший подход для «классов USB -устройств», учитывая большое количество различных классов USB -устройств / вариантов использования
Только это, как USB -перечисление и т. Д

я.эн. Вы не можете перечислять как USB-сериал, а затем отдельно как композитное устройство.
Вам нужно будет перечислять как USB-композит (E.глин. Serial + HID) устройство, и то, что, как правило, было бы необходимо для Undef Serial_USB на платформах.txt, чтобы 2 устройства не могли конфликтовать друг с другом во время перечисления
^^ на самом деле я не уверен, что это действительно так

Следовательно, использование тех, кто хочет использовать конкретные новые классы USB-устройства, должны были бы вручную редактировать платформы TXT, так как они отличаются от USB-сериала по умолчанию

----------
Привет, Роджер, я только что прочитал ваш комментарий о USB.End (), я подумал, что это одна вещь, которую стоит проверить, так как мы сможем избежать необходимости связываться с платформами.txt и serial_usb

Я думаю, вы, вероятно, правы в отношении USB.End (), как я бы подумал, было бы просто просто потянуть D+ и D-Low на 10 мс (USB-сброс), чтобы заставить хоста начать повторное выражение снова. Пока мы можем написать другой USB.begin () для запуска другого класса устройства

Rogerclark
Солнце 21 мая 2017 г. 12:29
Я только что проверил, и есть серийный конец USB

https: // github.com/rogerclarkmelbourne/ ... Стр.#188-L93

И да.

Я думаю, что если вы позвоните в End и сбросите USB -автобус, вы сможете заставить доску перечислять как другое устройство

Я просто не уверен, как хост ПК и т. Д

Хотя это должно быть легко проверить.

Re: массовое хранилище.

Были сообщения об этом

http: // www.STM32duino.com/viewtopic.PHP?t = 315

Код здесь

https: // github.com/joeferner/maple-usbmassstorage

Хотя я не знаю, работает ли это все еще - однако мы не изменили ядро ​​USB, поэтому я подозреваю, что это может быть сделано для работы

AG123
Солнце 21 мая 2017 г. 12:40
Спасибо, Роджер, я могу «связываться с этим», когда у меня есть время от времени, чтобы «поиграть с ним», дополнительно мне нравится идея сделать USB -сброс и «деформацию» в другое устройство, это может сделать эти доски STM32 с множеством флэш -работы в качестве многофункционального USB -устройства E.глин. Сначала запустите в виде эскиза, а затем предложение на USB-серии, выберите 1) Масса-хранение, 2) Скрытие, 3) аудио и т. Д. После выбора USB Reset и Warp : D

Rogerclark
Солнце 21 мая 2017 г. 12:59
Я согласен...

Наличие USB -устройства, выбираемого по коду, обычно лучше, чем нужно выбрать его в меню IDE, потому что люди могут просто загрузить библиотеки Code +, и это работает.

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

Либарра
Солнце 21 мая 2017 г. 9:51 вечера
Я могу быть единственным, но я не нахожу его запутанным и трудно использовать вариант меню рядом с тем, что я использовал для выбора платы, которую я использую...

Другая вещь, которую я хотел упомянуть, это то, что попытка изменить USB -интерфейс устройства на лету, по крайней мере в Windows, не очень хорошая идея, если вы будете делать это часто. По крайней мере, с Libmaple не удобно, потому что Windows по -прежнему будет установлена ​​плата STM32 с одним интерфейсом. Устройство, поэтому вам придется разоблачить текущий драйвер для платы и проверить изменения в диспетчере устройств, чтобы Windows обнаружил его как новый интерфейс. Я меняю USB -интерфейс вашего устройства один раз в долгое время, пока это не будет иметь значения, но если вы хотите сделать это, чтобы отправить, например, последовательные сообщения на ПК, используя другой интерфейс, это не практично.

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

Rogerclark
Солнце 21 мая 2017 г. 22:07
Я думаю, что нам нужно было бы проверить, практически ли он на Windows.

При переключении из DFU. загрузчик на серийный эскиз, у Windows нет большой проблемы.

Мы также могли бы предотвратить серийный.End (), вызванный по умолчанию, поэтому единственное, что видит Windows, это когда новое устройство E.глин. Скрытие перечислено.

По совпадению, есть еще одна ветка, в которой кто -то сообщил, что он не получает последовательное устройство, если их эскиз не вызовет серийный.begin () в настройке.

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

Либарра
Пн 22 мая 2017 г., 22:06
Rogerclark написал:По совпадению, есть еще одна ветка, в которой кто -то сообщил, что он не получает последовательное устройство, если их эскиз не вызовет серийный.begin () в настройке.

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

AG123
Пн 22 мая 2017 г., 22:30
Уловка, вероятно, в том, что вам нужно перечислить как другой VID/PID E.глин. 1eaf: 0005
Хозяин тогда подумал бы, что это новое устройство, и это соответственно инициирует это

Rogerclark
Вторник 23 мая 2017 г. 12:02
AG123 написал:Уловка, вероятно, в том, что вам нужно перечислить как другой VID/PID E.глин. 1eaf: 0005
Хозяин тогда подумал бы, что это новое устройство, и это соответственно инициирует это

Либарра
Ср 24 мая 2017 г. 12:08
Rogerclark написал:AG123 написал:Уловка, вероятно, в том, что вам нужно перечислить как другой VID/PID E.глин. 1eaf: 0005
Хозяин тогда подумал бы, что это новое устройство, и это соответственно инициирует это

Колли147
Ср 24 мая 2017 г. 12:30
Вероятно, не лучшее место, чтобы выразить это, но, поскольку библиотека Либарры и теме активна, я подумал, что у меня будет поп.

Некоторые проблемы с привлечением USB HID работают. Клавиатура.begin ()/mouse.Begin () в порядке, но как только я вставлю клавиатуру.write () или клавиатура.print () плата ничего не делает после загрузки. Кстати, это чертежи. Изменен R10 с 10K до 1K5 все же. Как только я прокомментирую клавиатуру.Напишите и повторно загрузите, он работает нормально. Никакой клавиатуры тоже не обнаружены компьютером.

Любые идеи?

Я предполагаю, что это должно быть в порядке, и это, скорее всего, мой Cheapo Aliexpress Bluepill.
Набросок ниже с базовым выводом клавиатуры (на основе Blink для удобства) // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 13 as an output. pinMode(PC13, OUTPUT); //Serial.begin(115200); Keyboard.begin(); } // the loop function runs over and over again forever void loop() { digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level) Keyboard.println("ON"); //Serial.println("HIGH"); delay(1000); // wait for a second digitalWrite(PC13, LOW); // turn the LED off by making the voltage LOW Keyboard.println("OFF"); //Serial.println("LOW"); delay(1000); // wait for a second }

Либарра
Чт 25 мая 2017 г., 2:19
Collie147 написал:Вероятно, не лучшее место, чтобы выразить это, но, поскольку библиотека Либарры и теме активна, я подумал, что у меня будет поп.

Некоторые проблемы с привлечением USB HID работают. Клавиатура.begin ()/mouse.Begin () в порядке, но как только я вставлю клавиатуру.write () или клавиатура.print () плата ничего не делает после загрузки. Кстати, это чертежи. Изменен R10 с 10K до 1K5 все же. Как только я прокомментирую клавиатуру.Напишите и повторно загрузите, он работает нормально. Никакой клавиатуры тоже не обнаружены компьютером.

Любые идеи?

Я предполагаю, что это должно быть в порядке, и это, скорее всего, мой Cheapo Aliexpress Bluepill.
Набросок ниже с базовым выводом клавиатуры (на основе Blink для удобства) // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 13 as an output. pinMode(PC13, OUTPUT); //Serial.begin(115200); Keyboard.begin(); } // the loop function runs over and over again forever void loop() { digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level) Keyboard.println("ON"); //Serial.println("HIGH"); delay(1000); // wait for a second digitalWrite(PC13, LOW); // turn the LED off by making the voltage LOW Keyboard.println("OFF"); //Serial.println("LOW"); delay(1000); // wait for a second }

Либарра
Чт 25 мая 2017 г. 5:19
Колли,

Я совершил изменения, ваш эскиз должен работать сейчас.

Кстати, вам не нужно инициализировать клавиатуру, мышь или джойстик, потому что все они с сериалом инициализируются Libmaple с USBDEV.begin (), но это не помешает это делать.
Collie147 написал: Никакой клавиатуры тоже не обнаружены компьютером.

Колли147
Чт 25 мая 2017 г., 7:14
Чемпион! Спасибо, и спасибо за информацию о водителях тоже!

Петр
Чт 25 мая 2017 г., 7:25 утра
Libarra, может ли ваша реализация каким -то образом предоставить общее устройство HID пользователю? Я использовал реализацию HID V-USB для передачи своих собственных данных таким образом. Я только что написал функции дескриптора и отправить/получить. Даже дескриптор был как бы общий на самом деле - мне потребовалось время, чтобы найти тот, который был бы принят Windows, OSX и Linux. Таким образом, только подпрограммы отправки/получения были «пользовательскими» (определены пользователем), остальные могли быть жестко кодированы в библиотеке.

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

Петр
Чт 25 мая 2017 г. 13:53
Кстати, я попробовал клавиатуру Libarra Hid в Linux (работал отлично) и Windows 10 (совсем не работал, «драйвер не установлен»).
Это должно работать в Windows 10 или нет?

Либарра
Пт 26 мая 2017 г. 5:01
Collie147 написал:Чемпион! Спасибо, и спасибо за информацию о водителях тоже!

Lennyz1988
Пн 14 августа 2017 г. 13:18
[Либарра - Чт 25 мая 2017 г. 5:19] -
Если вы используете Windows, вам может потребоваться удалить драйвер вашей платы в качестве последовательного в диспетчере устройств и проверьте изменения в оборудовании. Когда он будет обнаружен, он установит 3 USB -драйверы: составные, серийные и скрытые. Как только это будет установлена ​​драйверы, ваша плата должна работать в качестве композитного устройства с последовательным и скрытым.
Спасибо! Это помогло мне. Работа отлично отлично на Windows 10 x64.

DAUGINARUG
Ср 11 октября 2017 г. 14:45
Я использую Arduino IDE 1.6.9, Windows 7, Maple Mini R3 (от eBay) (с STM32F103C8T6). Использование настройки клавиатуры + мыши.

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

Должен ли я использовать другую IDE? Есть много противоречивой информации, которую можно использовать с STM32.
РЕДАКТИРОВАТЬ: Я только что попробовал IDE 1.6.13 и до сих пор нет устройства HID.

Есть ли примеры специально для Maple или Maple Mini? Вот мой код...
const int button0 = PB11; const int button1 = PB10; void setup() { pinMode(PB1, OUTPUT); //for the LED pinMode(button0, INPUT_PULLUP); pinMode(button1, INPUT_PULLUP); //Keyboard.begin(); //USBDev.begin(); } void loop() { if ((digitalRead(button0)== LOW)) Keyboard.press('a'); else Keyboard.release('a'); if ((digitalRead(button1)== LOW)) Keyboard.press('b'); else Keyboard.release('b'); // The next section blinks the LED so I can tell if the sketch is running digitalWrite(PB1, HIGH); // turn the LED on (HIGH is the voltage level) delay(2); // wait digitalWrite(PB1, LOW); // turn the LED off by making the voltage LOW delay(498); // wait }

Ofnicolson
Сб 14 октября 2017 г., 17:42
Всем привет,

Я пытаюсь заставить свой Maple Mini действовать в качестве клавиатуры USB. Я установил код на https: // github.com/libarra111/arduino_stm32 Но я не могу найти упомянутые примеры (в оригинальном посте говорится, что они живут в спрятанной папке, которую я не могу найти).

Кто -нибудь может указать мне на пример кода, который выступает как клавиатура USB, пожалуйста?

Большое спасибо,
Олли

Ofnicolson
Солнце 15 октября 2017 г. 7:47
Ах, хорошо. Я понял это - я пытался включить клавиатуру.h и получить «не могу найти скрытую.h "ошибки. Но, видимо, клавиатура.write () работает без какого -либо включения или инициализации.

Спасибо, Либарра!

DAUGINARUG
Чт 19 октября 2017 г. 13:38
[Либарра - Чт 25 мая 2017 г. 5:19] - Если вы используете Windows, вам может потребоваться удалить драйвер вашей платы в качестве последовательного в диспетчере устройств и проверьте изменения в оборудовании. Когда он будет обнаружен, он установит 3 USB -драйверы: составные, серийные и скрытые. Как только это будет установлена ​​драйверы, ваша плата должна работать в качестве композитного устройства с последовательным и скрытым.
Эй, я получил это!
Вы можете добавить дополнительный шаг к этой цитате из Libarra. По крайней мере для пользователей Windows 7. Если вы не можете заставить Windows распознавать свой клен как устройство HID, удалите свой драйвер, как говорит Либарра, а затем, когда он спрашивает, хотите ли вы «подтвердить устройство удаления»,
Поместите чек на флажок с надписью «Удалить программное обеспечение для драйверов для этого устройства."
Затем нажмите кнопку ОК. Затем сбросьте клен.

Спасибо, Либарра (и другие) за всю вашу тяжелую работу.

Арпрос
Ср 13 декабря 2017 г. 1:02
Вот ошибка, которую я нашел в вилке: некоторые записи iInterfaces находятся вне диапазона n_string_descriptors. Изменение их на 0 должно это исправить. Это в usb_device.в.

Я на самом деле не пробовал твою вилку, но когда у меня была такая же ошибка в моей библиотеке USBHID, устройство не будет работать ни с моим телефоном Android, ни с виртуальной машиной Ubuntu. После исправления это работает.

Флорисла
Вт 27 февраля 2018 г. 13:03
Всем привет,

Я использую USB HID сейчас на плате Hy-Tiny (STM32F103TB) в режиме клавиатуры+мыши в Windows 7.

Благодаря всем, кто внес свой вклад, это отличный материал для работы с.

Я хотел поделиться одной проблемой, с которой я столкнулся (и нашел исправление).

Сначала мне не удалось одновременно получить сериал и устройство HID в то же время.

С установленными стандартными драйверами у меня был «сериал кленового», но затем устройство HID не было.

Чтобы включить устройство HID, я удалил и удалил серийный драйвер, а затем отсканировал на наличие аппаратных изменений --
В этом случае появилась клавиатура HID (1 фунт 0004 MI_02 COL02).

Но, конечно, тогда у меня больше не было серийного драйвера (что удобно для загрузки прошивки).
Последовательное устройство было показано без драйвера в качестве другого устройства -> Maple (1 -е. 0004 Mi_00).

Как только я установил последовательный драйвер, устройство HID снова исчезнет, ​​и я потерял функциональность клавиатуры.

Решение состоит в том, чтобы использовать опцию-ID 0 для WDI-Simple.exe в install_drivers.летучая мышь (для последовательного устройства, а не DFU).

Mrburnette
Вт 27 февраля 2018 г. 13:19
[Флорисла - Вт 27 февраля 2018 г. 13:03] - ...
Решение состоит в том, чтобы использовать опцию-ID 0 для WDI-Simple.exe в install_drivers.летучая мышь (для последовательного устройства, а не DFU).
Очень интересно. Я предполагаю, что вы используете Windows 10 или 8.1?

Луча

Флорисла
Вт 27 февраля 2018 г., 23:20
Нет, это на Windows 7 x64.

Арпрос
Ср 28 февраля 2018 г. 1:32
[Флорисла - Вт 27 февраля 2018 г., 13:03] -Решение состоит в том, чтобы использовать опцию -ID 0 для WDI -Simple.exe в install_drivers.летучая мышь (для последовательного устройства, а не DFU).
Отличный! Я не смог получить сериал и спрятан одновременно в Win 8.1, и я надеюсь, что это сработает.

Мадиас
Чт, 01, 2018, 16:03
Поэтому я думаю, что версия USB HID Libarras теперь устарела, так как версия Arpuss имеет ошибки и другие функции.
Может быть, мы должны отметить эту тему/библиотеку "устаревшего?"(Либарра не была в сети почти на один год, даже на GitHub).

Так что новый пользователь должен переключиться на -> ViewTopic.PHP?f = 13&t = 2926

Флорисла
Пт 02, 2018 12:01
Спасибо,
Я не знал об этом.

Я посмотрю, смогу ли я заставить это работать с этой библиотекой.