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

usb cdc stm32

Здравствуйте.

 

Разбираюсь с USB. Конкретнее с CDC (виртуальный COM порт), реализую на микроконтроллере STM32(L). Библиотека от ST это просто кошмар, поэтому решил написать свою на основе библиотеки от keil. У keil есть реализация HID устройства, а CDC нет.

Читая Агурова и статьи в интернете, уже кое-чего добился проходит инициализация – читаются дескрипторы, на ПК подключается драйвер и даже можно найти новый COM порт и открыть его в терминале. А вот с передачей и приемом у меня проблемы – я никак не пойму с какого момента заканчивается общение с нулевой конечной точкой и начинается общение с другими конечными точками.

При отладке последовательность запросов у меня такая:

1. GET_DESCRIPTOR_DEVICE (дескриптор устройства)

2. SET_ADRESS

3. GET_DESCRIPTOR_DEVICE (дескриптор конфигурации)

4. SET_CONFIGURATION

5. SET_LINE_CODING

6. GET_LINE_CODING

7. SET_CONTROL_LINE_STATE

8. При открытии виртуального порта в терминале опять SET_LINE_CODING

 

А далее ничего не происходит, даже когда я передаю данные через терминал. Хотя USB не отваливается и продолжает работать дальше.

У меня такие вопросы.

1. Что должно происходить дальше? Какие запросы обрабатываться?

2. Что нужно сделать при запросе SET_CONFIGURATION? Я при этом запросе только включаю/настраиваю остальные(не конфигурационные) конечные точки и то не уверен, что правильно?

3. Как и когда правильно настраивать не конфигурационные конечные точки – по дескрипторам конечных точек или нужно учитывать какую-то информацию при запросе с ПК?

Вроде пока больше вопросов не вспомню.

Заранее благодарю за любую помощь.

 

P.S. Может у кого есть пример для cdc usb, хотя-бы даже для другого микроконтроллера.

Изменено пользователем Нортон

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


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

Пройдитесь поиском по форуму. Я выкладывал usb_cdc для stm32 (http://electronix.ru/forum/index.php?showtopic=111955&st=15).

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


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

Библиотека от ST это просто кошмар

Но оно работает. Хорошо живете, если есть время писать своё. =)

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


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

Пройдитесь поиском по форуму. Я выкладывал usb_cdc для stm32 (http://electronix.ru/forum/index.php?showtopic=111955&st=15).

 

Спасибо, буду разбираться.

Изменено пользователем Нортон

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


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

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

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

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

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

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

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

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

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

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