Easyelectronics.ru

Электроника для всех
Текущее время: 15 окт 2019, 19:22

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 22 ] 
Автор Сообщение
 Заголовок сообщения: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 03 мар 2019, 11:33 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 417
Я хочу подключить к своему STM32 внешнее устройство, которое имеет USB (вирт. СОМ-порт).

Есть примеры обмена со стороны STM32?
Допустим настроен Host, задан Virtual Port Com.
Я хочу послать строку и получить строку символов.
Делать моему МК нечего. Потому можно и без прерываний.

Куда не сунешься, везде STM32 в таком классе как дивайс. При подключении к компу.
А мне надо наоборот. :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 03 мар 2019, 11:40 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 199
Какой камень то?
Не очень понятно, нафига быть МК хостом виртуального СОМ-порта? Есть ведь настоящие UART-ы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 03 мар 2019, 11:53 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 999
Для тех кто сам не может STM придумала вот такую штуку.
Вложение:
Host_CDC.png
Host_CDC.png [ 53.99 Кб | Просмотров: 1492 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 03 мар 2019, 12:16 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 417
если конкретно, то вот STM32L476. А есть POS-терминал, сейчас подключаемый к компу и сообщающий ему, что оплата по карте произведена. Он подключается по USB и выглядит как СОМ-порт.
Теперь всё то же самое, но вместо компа моя плата.
И я тоже хочу узнать, что оплата 40 руб по карте произведена.
И соответственно выполнять дальнейшие действия. :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 03 мар 2019, 12:21 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 417
VladislavS писал(а):
Для тех кто сам не может STM придумала вот такую штуку.
Вложение:
Host_CDC.png


Так мне Куб всё сконфигурировал.
Создал проект.
И там есть взрослый файл usbh_cdc.c.
Вот теперь как им пользоваться? :-)

Передать строку из буфера?
Получить строку в буфер?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 04 мар 2019, 15:35 
Старожил
Аватара пользователя

Зарегистрирован: 01 ноя 2011, 23:51
Сообщения: 821
Я делал так
Код:
       switch(a)
                           {
                     case HOST_CLASS:
                          USBH_CDC_Transmit(&hUsbHostHS,(uint8_t *)(&Crc),4);
                          USBH_CDC_Receive(&hUsbHostHS,USB_RxBuf,4);
                                                         break;
                             }



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 04 мар 2019, 18:03 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 417
спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 16 мар 2019, 22:25 
Заглядывает иногда

Зарегистрирован: 13 дек 2018, 01:53
Сообщения: 52
STM32F103C8, USB, виртуальный COM порт. Для передачи использую функцию "CDC_Transmit_FS((uint8_t*) "Privet\r\n", 8);". Работает без проблем. Но, если использовать эту функцию подряд, скажем, два раза, то вторая посылка уже не принимается. Нормально работает только тогда, когда вставляется между посылками задержка. При задержке 1 мсек (всё, что мог выжать из халовской задержки) работает нормально. Это странно, если учесть, что при использовании UART этой проблемы нет. При исследовании использую не привычные терминальные программы а свою, к которой никогда вопросов не возникало. В связи с этим вопросы:
1. Если кто то исследовал, то при какой минимальной задержке посылки идут без проблем?
2. Для этой функции такое положение вещей нормальное и с этим ничего поделать нельзя?
3. Если что то можно, то что?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 17 мар 2019, 03:54 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Ну там наверное функция записывает в буфер и не дожидается пока оно уйдет.
Используйте прерывание для отлова факта окончания отправки или наверняка есть функция которая будет ждать окончания отправки. Смотря как логику построить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 17 мар 2019, 21:23 
Заглядывает иногда

Зарегистрирован: 13 дек 2018, 01:53
Сообщения: 52
alexsam писал(а):
Ну там наверное функция записывает в буфер и не дожидается пока оно уйдет.
Используйте прерывание для отлова факта окончания отправки или наверняка есть функция которая будет ждать окончания отправки. Смотря как логику построить.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 17 мар 2019, 21:29 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3996
Откуда: КЧР, поселок Нижний Архыз
Юрий48 писал(а):
Но, если использовать эту функцию подряд, скажем, два раза, то вторая посылка уже не принимается.

А что, на калокубе свет клином сошелся? Реализаций USB CDC для STM32 полным-полно! Как минимум две выкладывали на mcu.goodboard.net, я на основе одной из них сделал себе эмулятор PL2303 для STM32F042.
Смотри код, правь как тебе надо. Зачем бездумно копипастить, как абдуринщики голимые?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 17 мар 2019, 23:41 
Заглядывает иногда

Зарегистрирован: 13 дек 2018, 01:53
Сообщения: 52
Eddy_Em писал(а):
Юрий48 писал(а):
Но, если использовать эту функцию подряд, скажем, два раза, то вторая посылка уже не принимается.

А что, на калокубе свет клином сошелся? Реализаций USB CDC для STM32 полным-полно! Как минимум две выкладывали на mcu.goodboard.net, я на основе одной из них сделал себе эмулятор PL2303 для STM32F042.
Смотри код, правь как тебе надо. Зачем бездумно копипастить, как абдуринщики голимые?

Вы со мной говорите, как с равным. На самом деле я делаю первые шаги и каждый из них даётся с трудом. Одно то, что Куб даёт готовую структуру проекта, для меня уже большое дело и уже чего то, как мне кажется, стал понимать - вот получился виртуальный COM порт и передаю и принимаю по нему данные. А шарахаться - это уж только тогда, когда совсем выхода не будет. Вот, если в рамках Хала и этой темы ничего конкретного не будет, то тогда - да, попробуем пойти другими путями. Понятно, что при таком положении, мне надо было бы в песочнице поиграть, но, подумалось, зачем плодить темы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 18 мар 2019, 02:20 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 416
Откуда: Киев
Первые шаги люди начинают с мигалок а не с USB, а если с USB то читают тонну документации...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 18 мар 2019, 03:05 
Заглядывает иногда

Зарегистрирован: 03 фев 2019, 06:33
Сообщения: 45
И потонешь с usb так и не начав...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 18 мар 2019, 08:34 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 417
MasterElectric писал(а):
Первые шаги люди начинают с мигалок а не с USB, а если с USB то читают тонну документации...


... чтобы стать выдающимся специалистом по USB? :-)
А если нужно просто выпускать устройство, которое работает по USB?
Вы же не разбираетесь в ассемблере STM32. Или всё же разбираетесь?
Лично я занялся STM32 исключительно потому, что надо было записывать файлы на USB flash disk.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 18 мар 2019, 10:31 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3996
Откуда: КЧР, поселок Нижний Архыз
serglg писал(а):
Лично я занялся STM32 исключительно потому, что надо было записывать файлы на USB flash disk.

А я выбрал его как оптимальный вариант: дешевый и легкодоступный Cortex. А что до USB flash disk, я слишком мало занимаюсь STM32 (всего лишь около пяти-шести лет), чтобы так круто... Это ж надо: а) написать низкоуровневый доступ к используемой флеш-памяти, б) написать модуль файловой системы, в) написать USB-device для флешки... Не, это — чересчур много времени съест! А готовенького, чтобы за недельку сляпать нормальный код, годный к использованию, я не встречал еще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 18 мар 2019, 11:10 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 416
Откуда: Киев
serglg писал(а):
Вы же не разбираетесь в ассемблере STM32. Или всё же разбираетесь?


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 18 мар 2019, 19:31 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 417
Eddy_Em писал(а):
serglg писал(а):
Лично я занялся STM32 исключительно потому, что надо было записывать файлы на USB flash disk.

А я выбрал его как оптимальный вариант: дешевый и легкодоступный Cortex. А что до USB flash disk, я слишком мало занимаюсь STM32 (всего лишь около пяти-шести лет), чтобы так круто... Это ж надо: а) написать низкоуровневый доступ к используемой флеш-памяти, б) написать модуль файловой системы, в) написать USB-device для флешки... Не, это — чересчур много времени съест! А готовенького, чтобы за недельку сляпать нормальный код, годный к использованию, я не встречал еще.


так в том и дело, что я до сих пор этого не знаю - "б) написать модуль файловой системы, в) написать USB-device для флешки."
Просто в Кубе сказал, что мне надо USB disk и у себя в программе вставил несколько строк:
Код:
                                                res = f_open(&testFile, (char*)path, FA_WRITE | FA_CREATE_ALWAYS);
                                                res = f_write(&testFile, BUFDISK, 7712, &testBytes);
                                                res = f_close(&testFile);


Всё.
работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 18 мар 2019, 19:37 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3996
Откуда: КЧР, поселок Нижний Архыз
Ну, мне надо, чтобы работало как мне нужно, а не как криворукие индусы написали!
Калокуб — та же дрянь, что и абдурина. Ее используют лишь для одноразовых никому не нужных поделок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 18 мар 2019, 21:47 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 417
Eddy_Em писал(а):
Ну, мне надо, чтобы работало как мне нужно, а не как криворукие индусы написали!
Калокуб — та же дрянь, что и абдурина. Ее используют лишь для одноразовых никому не нужных поделок.


Ну каждый имеет право, не спорю.
У меня и это работает как МНЕ НАДО.
Была проблема с выравниваем буфера BUFDISK (в результате мог записать в файл только 512 байт), но умные люди подсказали как правильно его объявлять.
Но как почитал на разных форумах, народ влетал в эту проблему и без всякого Куба. :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 24 мар 2019, 21:20 
Только пришел

Зарегистрирован: 18 дек 2016, 13:53
Сообщения: 12
CERGEI писал(а):
И потонешь с usb так и не начав...

Мое знакомство с STM32 началось с USB CDC. Cейчас успешно вляпываю наработки по мере необходимости. 3.3 версия библиотеки была кривовата, 3.4, вроде, без проблем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Host виртуальный СОМ-порт
СообщениеДобавлено: 25 апр 2019, 19:17 
Заглядывает иногда

Зарегистрирован: 13 дек 2018, 01:53
Сообщения: 52
По разным обстоятельствам пришлось отключиться от этой проблемы, но жизнь заставила к ней вернуться.
alexsam писал(а):
Ну там наверное функция записывает в буфер и не дожидается пока оно уйдет.
Используйте прерывание для отлова факта окончания отправки или наверняка есть функция которая будет ждать окончания отправки. Смотря как логику построить.

Считаю, что это самый дельный совет из всех, что были. Но, вот, хотелось бы поподробнее. Кто может конкретно указать на прерывание или функцию, которая сигнализирует об окончании передачи.
Tacho писал(а):
Мое знакомство с STM32 началось с USB CDC. Cейчас успешно вляпываю наработки по мере необходимости. 3.3 версия библиотеки была кривовата, 3.4, вроде, без проблем.

Приятно слышать, что у кого то всё получается. А с этой проблемой вам приходилось сталкиваться?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB