РЕШЕНО Stm32f103c8t6 usb hid keyboard

Тема в разделе "Arduino & Shields", создана пользователем P55, 31 мар 2020.

Метки:
  1. P55

    P55 Нуб

    Всем привет.
    Задача - имитировать USB клавиатуру/
    Пробую заливать в контроллер этот пример
    Код (C++):
    #include <USBComposite.h>

    USBHID HID;
    HIDKeyboard Keyboard(HID);

    void setup() {
      HID.begin(HID_KEYBOARD);
      Keyboard.begin(); // useful to detect host capslock state and LEDs
      pinMode(PC13, OUTPUT);
      delay(1000);
     
    }

    void loop() {
      digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
      delay(1000);              // wait for a second
      Keyboard.println("Hello world");
      digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
      delay(1000);              // wait for a second
      delay(5000);
    }
    и в результате ПК не обнаруживает нового USB устройства и ни чего не передаётся.
    Кто может подсказать в чём причина?
    Контроллер к ПК после его прошивки подключать через microUSB?
    Може кто-нибудь уже делал такое и даст рабочий пример?
     
  2. NikitOS

    NikitOS Король шутов Администратор

    А решение какое?
     
  3. P55

    P55 Нуб

    Не понятен этот вопрос по решение. Я сам задаю вопросы в теме и прошу помощи в решении моей задачи...
     
  4. NikitOS

    NikitOS Король шутов Администратор

  5. b707

    b707 Гуру

    а зачем же вы тогда поставили метку "Решено" на вопросе? Эта метка - очевидно - ставится после того, как вы решили свой вопрос...

    По сути вопроса - вы уверены, что STM32F103 может быть HID устройством? - я что-то этого не встречал...
     
    NikitOS нравится это.
  6. Ariadna-on-Line

    Ariadna-on-Line Гуру

    USB устройства могут представляться компу устройствами разных классов. Например Ардуина появляется как COM-порт. Это класс CDC - класс коммуникационных устройств. А клавиатура и мышь - это класс HID (устройства интерфейса с человеком). Если STM-ка после заливки скетча (через USB порт с помощью УЖЕ аппаратно впрограммированного бутлоадера) станет USB клавиатурой, это равносильно самоубийству СОМ-порта и бутлоадера. Вывести ее из HID-состояния можно будет только аппаратным перепрограммированием процессора. А бутлоадер самоубийства не допускает. Он впишет вашу прогу, но не по тем стартовым адресам, которые нужны для HID устройств. Но - возможно вы умудритесь написать мудрый бутлоадер. Типа - вы запускаете STM, она спрашивает вас кем ей представляться на USB шине - CDC или HID-ом, или обоими сразу . Эта тема обсуждается в сети. Найду - отпишусь.
     
    Последнее редактирование: 1 апр 2020
  7. P55

    P55 Нуб

    Здесь реализовано...
    http://narodstream.ru/stm-urok-34-hal-usb-hid/
     
  8. P55

    P55 Нуб

    http://narodstream.ru/stm-urok-34-hal-usb-hid/
     
  9. Ariadna-on-Line

    Ariadna-on-Line Гуру

  10. P55

    P55 Нуб

    У меня этот пример компилиться, прошивается в STM32, но плата не определяется в диспетчере устройств как новое HID устройство.
    Драйвера, кабель сменил и теперь не знаю что и делать...
     
  11. ZAZ-965

    ZAZ-965 Гуру

    @P55, библиотека USBComposite и скетч simplekeyboard.ino работоспособны, проверял год-два назад. Посмотрите в оснастке Управление компьютером - Службы - Доступ к HID устройствам, запущена ли эта служба.
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Комп физически определяет подключение USB устройства по изменению потенциала на линии DP (D+). Это делает подтягивающий резистор (либо на V+, либо на GND). Не нашел в даташите STM-а нужен ли он отдельно, или есть встроенный в микре. И уже после этого операционка начинает опрос и определение устройства. А если не определит - напишет что есть неопознанное устройство.
     
    Последнее редактирование: 2 апр 2020
  13. P55

    P55 Нуб

    Ещё раз переустановил драйвера, сменил кабель, проверил службу.
    Пример заработал, устройство определилось в разделе HID, как устройство ввода-вывода, текст появляется в любом редакторе.
    Всех благодарю за помощь!
     
  14. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Не понимаю. Какие драйвера для HID устройств ? Они встроены в Винды по-умолчанию.
     
  15. P55

    P55 Нуб

    Для ST-linka, для программирования STM32...
     
  16. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Посмотрите, может будет любопытно.
    https://www.obdev.at/products/vusb/projects.html
     
  17. P55

    P55 Нуб