реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> USB HID, "Устройство неопознано" после повторного подключения
ilkz
сообщение Jan 12 2016, 11:38
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



STM32F4-Discovery.
В проекте использую либу TM_USB_HID_DEVICE для создания своего hid-девайса.

После заливки поведение следующее:
1. Сразу после заливки проект работает как надо: видится в винде, обменивается данными с прогой. После передерга питания/нажатия кнопки RESET все так же хорошо.
2. Но если не выключая питание платы перевоткнуть USB, то второй раз девайс уже не определяется: винда пишет что устройство USB не опознано.

Что делать - не знаю, уже прям всю голову сломал.
Помогите - куда копать?

Если нужны подробности - пишите какие именно, дам на посмотреть.

Спасибо!
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jan 12 2016, 11:53
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Вам надо сделать корректную переинициализацию USB и всех потрохов, если устройство было отключено от USB.
Я чинил родственную проблему в хосте флэшек - если флэшку выдернуть и вставить по-новой, то она уже не опознаётся. Потому что ребята недопилили деинициализацию....
У Вас, видимо, что-то родственное. Я, правда, использовал СТ-шные либы, а не ТМ, но они наверное, друг у друга переписывают ...
Детально подсказать не могу, извините. Девайсы я не делал.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
ilkz
сообщение Jan 12 2016, 12:01
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Ага понятно, ну я на что-то подобное и грешил.
Буду благодарен, если подскажете куда смотреть.
Go to the top of the page
 
+Quote Post
Vasily_
сообщение Jan 12 2016, 12:20
Сообщение #4


Знающий
****

Группа: Модераторы
Сообщений: 925
Регистрация: 25-01-09
Из: Рига
Пользователь №: 43 909



http://habrahabr.ru/post/208026/
Go to the top of the page
 
+Quote Post
ilkz
сообщение Jan 12 2016, 12:44
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Что я там должен увидеть? Про отработку реконнекта там ни слова.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 12 2016, 12:59
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(ilkz @ Jan 12 2016, 14:38) *
Что делать - не знаю, уже прям всю голову сломал.
Помогите - куда копать?


К плате дискавери Ф4 идет пример работы с хид-"мышкой", с акселерометром, там все уже сделано, возьмите за основу и доработайте, как нужно...
В том примере используются либы SPL, не куба!

Сообщение отредактировал mantech - Jan 12 2016, 13:00
Go to the top of the page
 
+Quote Post
ilkz
сообщение Jan 12 2016, 13:16
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Разобрался кажется

было вот так:
Код
    while (1) {
            mm_process_packets();
    }


сделал вот так:
Код
    while (1) {
        if(TM_USB_HIDDEVICE_GetStatus() == TM_USB_HIDDEVICE_Status_Connected)
            mm_process_packets();
        
        if(TM_USB_HIDDEVICE_GetStatus() == TM_USB_HIDDEVICE_Status_Disconnected)
        {
            TM_USB_HIDDEVICE_Init();
            Delayms(1000);
        }
    }


Вроде работает.
Всем спасибо!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01474 секунд с 7
ELECTRONIX ©2004-2016