Прием данных усб порта

STM32 HAL USB Урок 4: Приём — передача

Создаем простейшее usb-устройство для общения со… / Хабрахабр

В продолжение темы о создании собственного USB-гаджета. Создание простого устройства. Раз устройство планируется подключать к ПК, значит вероятнее всего потребуется передача данных между…

USB-порт — это… Что такое USB-порт?

На логическом уровне устройство USB поддерживает транзакции приема и передачи данных.

Подключение удаленного СОМ контроллера к USB порту

Передача и прием данных через СОМ порт контроллера Arduino UNO контролировалась утилитой компьютера COM Port Toolkit.

Программирование МК STM32. УРОК 33. HAL. USB. Virtual Com Port

USB — Википедия

Такие хабы — активные электронные устройства (пассивных не бывает), обслуживающие несколько собственных USB-портов.

Схема распайки компьютерного порта USB — ЮИЗБИ

Распайка компьютерного порта USB — ЮИЗБИ, схема распайки usb на rs232, схема usb кабеля, схема шнура usb, описание usb порта 2.0 и 3.0.

Анализаторы портов COM, LPT и USB | КомпьютерПресс

Com Port Visual Control имеет встроенный приемопередатчик для стандартной настройки режимов порта: битов данных, стоповых битов, скорости, четности, контроля ошибок, возможности приема и передачи текстовых данных и команд модема…

Уроки Arduino #2 — работа с монитором COM порта

Universal Serial Bus. USB

Выпускавшиеся в эти года USB манипуляторы типа мышь, клавиатура, джойстик проигрывали по качеству работы манипуляторам, работавшим по порту PS/2 и Game Port.

USB | Пакеты данных

Преамбула (маркер) передачи на низкой скорости (разрешает трансляцию данных на низкоскоростной порт хаба).

ARM7: техника использования виртуального последовательного…

Техника использования порта CDC состоит из инициализация драйвера, передачи и приема данных.

Как работают USB порты на компьютере-часть I.

Их скорость передачи данных низкая (максимальная 115Kbit/sec для последовательного порта, до 400KB/sec для параллельного

Прием данных усб порта: 50 комментариев

  1. Дмитрий Сухарев:

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

  2. Зина Тимаева:

    Побайтно. Лучше всего выкинуть эту фигню из прерываний и написать всё самому. Правда как это повлияет на их массивы — непонятно.

  3. Amantur Akkuluev:

    Можете ли вы сказать точное название вашей программы «COM port Monitor»? Я что-то не нашел такую же как у вас

  4. вьютик:

    нужно держать показания тока 25А- выше нужно аварийно отключать оборудование. показания снимается с шунта постоянного тока 50А и 75ма.и куда подключить к ардуине НАНО в3.

  5. D Baker:

    Только еще раз подчеркиваю, что резистор не должен быть подключен на постоянной основе к +3.3 вольт.

  6. Ксения Осипова:

    +Anastassiya Kondrasheva Ну тогда: a = recieve_buf[0]; b = recieve_buf[1]; d = recieve_buf[4]*100+recieve_buf[5]*10+recieve_buf[6]; 🙂

  7. timPRO:

    Здравствуйте, можно ли использовать одновременно 2 usart? То есть один usart будет принимать данные, а второй отправлять их(на блютуз) или же может предложите решение получше?

  8. Виктория Хаюзко:

    Здравствуйте еще раз! Я хотел бы подключить GPS приемник к мк через USART и использовать DMA. Я представляю это следующим образом: От датчика данные передаются в память, затем из памяти к периферии (lcd дисплей, например). Тут же нужно использовать 2 DMA? Или это проще без DMA сделать?

  9. Tatiana Jmura:

    спасибо! А размер буфера каким Вы выбирали? А какой у Вас стандарт был? Не могли бы подсказать как его обрабатывать?  У меня стандарт NMEA 0183 version 2.3. Извините, что так много вопросов, может ссылки полезные скинете.

  10. mari ezugbaia:

    Забавный факт: Работа в cube MX версии 4.20 для STM32F103C8T6 не представляется возможным. Данная версия коробит до неузнаваемости проект и пускает по итогу ошибку 43, неделю угробил на поиск ошибки, пробовал кучу вариантов, но ничего не нашел, что могло бы помочь. Косвенно указывало на то, что проект не работает адекватно с моим кубом. Качайте только актуальную 4.21 для STM32F103C8T6.

  11. Ole4ka M:

    +Максим Шайсултанов Там в пакете 3,4,5 байты обозначают название пакета, например GGU (Я точно названия не помню) Нет.

  12. Dima Bortnyk:

    все решилось путем отключения в конфигурации USB_FS настройки Vbus sensig anable, т.к. у меня нестандартно разведена плата.(китайци они такие) А за уроки спасибо — мануалы курить оочень скучно( Насмотрелся так намного легче понимать стало и интересней.

  13. Lukas Greblikas:

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

  14. Кавказ Ставрополь 26:

    Да, и функции прошерстил, ни в одну рабочую (не инициализационную) процессор не заходит. Сейчас вот почитал про USB вообще — проверил все параметры и разобрался — в Кубе на вкладке «Configuration» -u003e «USB_FS» -u003e «Parameter Settings» надо отключить «VBUS sensing»

  15. Снежана Мосенкова:

    Хотелось бы i2c увидеть на миландре? Планируете еще ролики по миландру делать? ldm systems на миландровском контроллере сделали интересную мини отладку с прошивкой через юсб. платка почти в формате ардуины нано.чуть длиннее.

  16. Anar Nebiyev:

    Проходил отладчиком по функциям инициализации — во всех выход HAL_OK, USBD_OK, и т.д. Может есть возможность по каким-то регистрам определить после инициализации оборудования определить где что не заработало? Не особо знаком с USB, сейчас вот пока занимаюсь изучением.

  17. Valentina Vasilev:

    Палецвверх и огромное спасибо за прикол со стеком и кучей. Пол дня е*ал голову чего не запускается нормально девайс.

  18. NIKOLAU611:

    В уроке по сути описан транспортный уровень, если вам нужно например вводить тектовые команды и реагировать на них, то это уже скорее уровень приложения (application layer) потому поверх него нужно делать свой «протокол»\правила. Например применяете алгоритм fifo, наполянеете буфер до той поры пока не пришел » » (обычно терминалы предлагают line ввод, я пользуюсь CoolTerm, он такое умеет) а потом парсите этот буфер на предмет команды. В любом случае ответ на ваш вопрос это — использование буфера.

  19. нло:

    +Александр Ерохин Вы принимаете по прерываниям или по ДМА? Если второе, то перепишите на прерывания. Проверьте оптимизацию. Выключите её.

  20. седой урал:

    .h файлах есть описание к каждой функции на английском .Нужные библиотеки и начальные настройки «делаются» в CubeMX .Нужна мне работа с юсб поставил галочку в CubeMX и после будет подключена нужная библиотека.

  21. Valeria Kaznina:

    Здравствуйте. Я использую STM32F4-Discovery в Keil, передаю даные через USB FS CDC. Не пробовали ли вы передавать данные более 64 байт, а точнее принимать? В этом случае данные разбиваются на фрэймы. Вы не знаете, можно ли в этом случае узнать размер всего сообщения, принимая его кусок. И есть ли какой-то признак, который говорит о том, что идет прием сообщения, разбитого на части, а не отдельного сообщения?

  22. Aytnura Dastan:

    отличный опыт, сделать бы такое при помощи виртуального USB было бы полезнее так как удалось бы в любой stm32 вмонтировать usb. тем более это важно кто сэкономив закупал самые дешевые чипы без usb F030 и F100 без аппаратного.

  23. sean poenst:

    +Sappise кстати хочу посоветовать использовать функцию strlen() чтобы не считать байтики в строке самому

  24. TheCartmanes:

    usbd_cdc_if.h — что за библиотека и как ты ориентируешься, какая библиотека что делает и какую функцию использовать?

  25. Ильназ Азаматов:

    +Sappise Как понять «2+3+4»;. И еще вопрос, а UART инвертирует сигнал, который поступает на него с приемника?

  26. Дерзкие Девки:

    Прямо сейчас нет, но в будущем на мне висит проект на Milandr. Думаю следующим будет SPI. I2C не пригодится. поэтому ответ не планирую. Можете сбросить ссылку?

  27. Анатолий Н:

    Я не пробовал просто есть мысля .Инфу на Хабре видел, чет готовое было только надо разбираться и под свои нужды переделывать.Сейчас в этом особой нужды нет, было в планах для LinuxCNC делать.

  28. Кирилл щвед:

    А по Mass Storage урок будет? Или по старой библиотеке USB? Я бы посмотрел за донат, а то неделю бьюсь с ними и ничего не получается. Такое ощущение, что со стороны мастера реализация всегда проще, чем со стороны слейва.

  29. Поняшка Няшка:

    Я ниче не понял… при чем тут прерывания?…. Кто нибудь может объяснить как принять простой байт халовской библиотекой в самом прерывании?? и обработать его там же … чтоб в цикл основно вообще не лазить?… у меня по факту нихрена не читает из колбака путем ХАЛ_ресив_ИТ

  30. Баис Ахметов:

    +Максим Шайсултанов Проще без ДМА принимать. Причина проста. Для приёма по ДМА вам надо точно знать сколько байт придёт на приёмник, но для GPS это не так (приходилось работать). потому лучше просто сохранять в буфер и сбрасывать счётчик или по таймауту (т.к. данные приходят периодично) или по стоп-последовательности. После чего, отправлять на обработку. Там уже анализировать такой точно пакет пришёл и соответствующим образом разбирать.

  31. Наталья Сандалова:

    вот напрмер шлю какой то код (1234567). Мне нужно указать что 1-это переменная a, 2-это переменная b,….. 567-переменная d. И я могу слать другую комбинацию цифр или символов, но прога должна понимать, что 1-е  значение это переменная a, 2-е значение это переменная b и тд. Вот типо такого

  32. Нян Няшка Кэт:

    вот только одно не пойму как после приема очищается входной буфер? есть ли встроенный механизм или как обычно нужно самому его очищать?

  33. Anastasia Volk:

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

  34. Barbara Hunt Cannon:

    Не подскажите мне куда копать? Проблема с приемом по прерываниям. Если пришло данных больше чем нужно, то срабатывет оверран калбек и происходит зависание в прерывании. Как правильно обработать этот калбек, чтоб можно было далее передавать и принимать данные. Заранее благодарен.

  35. SanchoUS:

    А как выуживать данные из User_Data? Я написал вспомогательную функцию. usb_buff это тот же User_Data void usb_read_data(uint8_t *data, uint8_t len) { for(uint8_t i = 0; i u003c len; i++) { data[i] = usb_buff[i]; } } Но получаю только последний байт вместо всего массива.

  36. BIRYS 228:

    Приветствую! Спасибо за уроки — помогают быстро вникнуть в новую архитектуру. Я использую плату 32L476GDISCOVERY и в данном уроке, так же как и оба урока с HID — после подключения платы к ПК через micro-USB не происходит ничего, в диспетчере устройств ничего не появляется. Конфигурирую проект в точности также как и в уроках, Куб 4.19, Кейл 5.20. С аппаратной частью все ок, т.к. имеющиеся примеры для этой платы с USB работают, но они сделаны не через Куб, поэтому разобраться с ними гораздо сложнее. Не подскажете что посмотреть, где нужно копать?

  37. Overkill Gultezza :3:

    Здравствуйте. Возникла проблема. В кубе создал проект, сгенерировал его и вшил в STM32F401vc, затем установил драйвер с официального сайта. При этом usb stm32 компьютер не распознает, пишет — устройство usb не опознано (в диспетчере устройств unknow device) код ошибки 43 (Это устройство было остановлено, поскольку оно сообщило о возникновении неполадок. (Код 43)). Я использовал разъём usb на плате, поскольку других выходов нету( Подскажите, что делать. Заранее спасибо.

  38. Дмитрий Башлыков:

    Я понимаю, что пишу оффтопик. Но было бы интересно послушать о Вашем опыте калибровки RTC. Я имею ввиду COARSE и SMOOTH calibration

  39. Евгений Берёзов:

    Как вариант терминал в CAVR (среда под AVR) да во многих средах программирования есть терминалы для работы с USART Да вроде толза от ST есть с терминалом Ну или Delphi….. 🙂

  40. Unrealina:

    +Максим Шайсултанов Ну 100, думаю, для буфера хватит. А обрабатывал «просто» 2+3+4 байты проверялись на тип пакета и дальше по запятым вылавливал нужные данные.

  41. Алена Степанова:

    Я сталкивался с этой проблемой и решил ее. Дрова на официальном сайте подходят для VCP, который идет в составе отладчика. Однако для VCP, создаваемого пользователем, дрова не работают. Нужно скачать новые дрова. Долго шарился в интернете, в итоге нашел подходящие дрова, ссылку на скачивание к сожалению забыл. Ищи по названию: VCP_V1.3.1_Setup

  42. Кирилл Даценко:

    Подскажите пожалуйста: делаю все как по видео на плату STM32F407ZGT6, дрова поставил (тестил на f103 — работает) но при подключении к компу всегда ошибка 43 и только в режиме обновления прошивки комп распознает мк правильно… В чем может быть ошибка? Мой пост на офф сайте: https://community.st.com/thread/41557-stm32f407zgt6-virtual-com-port-error-43

  43. Yvu Nguyen:

    Совсем не понял, как обычный «if» поможет исправить проблему инициализации USB. USB_Connect будет 1 если отработала функция, в которую вы его поместили. Если ошибка есть, по прежнему будет USB_Connect = 1. Я не понимаю, выглядит бестолково. У меня такая проблема странная. Virtual Com появляется в списке устройств. Все вроде бы норм… пока я не пытаюсь отлаживать программу. В отладке USB не хочет правильно запускаться и винда выдает что устройство работает не правильно. Что вы говорили про время инициализации?

  44. Вадим Баракуда:

    Добрый день! А вы бы не могли программу скинуть com port monitor. Почему то не получатся найти ее в интрнете.

  45. Guillermo Maturino:

    Можно было бы с AVR переделать на STM.Но это требует времени вникнуть и разобраться как оно все работает в этом плане мне больше интересует PCI но это не для STM(

  46. Bucks Bani:

    Начиная с Serial.available(); начался резко более сложный материал и не понятно для чего он , без примера мой мозг отказался это понимать(

  47. Юрий Red:

    Здравствуйте! Спасибо за такое внимание к каналу и к науке программирования! Попробуйте воспользоваться отладкой и найти, где и что не поступает (дескрипторы и тд)

  48. Мухамед Шайхулаев:

    А вы случайно не знаете — каким образом можно отследить конец передачи данных от устройства к хосту? Мне нужно по концу передачи установить флажок — типа «USB_TX_CMPLT»

  49. she riff:

    +Николай Гусев Возможные проблемы я перечислил. Есть ещё вероятность, что данная ножка не работает (например куда-то заведена), но думаю, что вы используете те же, что в уроке. Поменяйте кабель. Может помочь.

  50. Storytime:

    как-то https://www.obdev.at/products/vusb/index.html сюда писал но у них желания заниматься virt usb на другие кристаллы особо нет.а что касаемо PCI удалось ли стыковать с ПЛИС?

Добавить комментарий

Ваш e-mail не будет опубликован.