|
STM32CubeMX и USB CDC, какие функции использовать? |
|
|
|
 |
Ответов
|
Jul 31 2014, 07:49
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Цитата(den_po @ Jul 31 2014, 11:33)  Её не нужно самостоятельно вызывать, это колбэк, он вызывается при поступлении данных. А вот сообщать, что мы готовы принимать очередной пакет, нужно уже самому с помощью USBD_CDC_ReceivePacket. так я и спрашиваю, где она у Вас вызывается? весь путь по которому CDC_Transmit_FS вызывается, он ведь должен вести в конце концов к OTG_HS_IRQHandler? там обрабатывается флаг прихода данных, вызывается куча функций и в конце концов CDC_Transmit_FS, так ведь должно быть? у меня CDC_Transmit_FS из OTG_FS_IRQHandler не вызывается.
|
|
|
|
|
Jul 31 2014, 08:08
|
Частый гость
 
Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315

|
Цитата(Atlantis- @ Jul 31 2014, 11:49)  так я и спрашиваю, где она у Вас вызывается? весь путь по которому CDC_Transmit_FS вызывается, он ведь должен вести в конце концов к OTG_HS_IRQHandler? там обрабатывается флаг прихода данных, вызывается куча функций и в конце концов CDC_Transmit_FS, так ведь должно быть? у меня CDC_Transmit_FS из OTG_FS_IRQHandler не вызывается. Давайте для начала определимся, CDC_Transmit_FS или CDC_Receive_FS. CDC_Transmit_FS вызывается по желанию. Я пробовал и из главного цикла, и из CDC_Receive_FS. CDC_Receive_FS в моём случае (stm32f072) вызывается по такой цепочке: USB_IRQHandler -> HAL_PCD_IRQHandler -> PCD_EP_ISR_Handler -> HAL_PCD_DataOutStageCallback -> USBD_LL_DataOutStage -> USBD_CDC_DataOut -> CDC_Receive_FS. Вызывается колбэк не напрямую, а через табличку указателей, которая регистрируется в функции MX_USB_DEVICE_Init (usb_device.c)
|
|
|
|
|
Jul 31 2014, 08:29
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Цитата(den_po @ Jul 31 2014, 12:08)  Давайте для начала определимся, CDC_Transmit_FS или CDC_Receive_FS. CDC_Transmit_FS вызывается по желанию. Я пробовал и из главного цикла, и из CDC_Receive_FS. CDC_Receive_FS в моём случае (stm32f072) вызывается по такой цепочке: USB_IRQHandler -> HAL_PCD_IRQHandler -> PCD_EP_ISR_Handler -> HAL_PCD_DataOutStageCallback -> USBD_LL_DataOutStage -> USBD_CDC_DataOut -> CDC_Receive_FS. Вызывается колбэк не напрямую, а через табличку указателей, которая регистрируется в функции MX_USB_DEVICE_Init (usb_device.c) извините перепутал, CDC_Receive_FS конечно. у меня проект для STM32F429ZI (точнее для платы Discovery с ним), так вот там CDC_Receive_FS вызывается только при инициализации, а в прерывании - нет. теперь, зная Вашу цепочку, я наверное смогу прописать вызов CDC_Receive_FS куда надо)) Цитата(den_po @ Jul 31 2014, 12:08)  Вызывается колбэк не напрямую, а через табличку указателей, которая регистрируется в функции MX_USB_DEVICE_Init (usb_device.c) что за табличка кстати?
|
|
|
|
Сообщений в этой теме
ViKo STM32CubeMX и USB CDC Jul 14 2014, 18:00 Integro посмотрите в файле usbd_cdc_if.c,
CDC_Transmit_FS... Jul 15 2014, 11:38 ViKo Цитата(Integro @ Jul 15 2014, 14:38) посм... Jul 15 2014, 20:01  Integro Цитата(ViKo @ Jul 15 2014, 23:01) Пробова... Jul 16 2014, 07:50 ViKo Из мейн функции не видны. Можно инклюдами заголово... Jul 16 2014, 08:19 Integro Цитата(ViKo @ Jul 16 2014, 11:19) Из мейн... Jul 16 2014, 12:49 ViKo Кабы я умел программировать USB в STM32, стал бы я... Jul 16 2014, 16:18 Integro Цитата(ViKo @ Jul 16 2014, 19:18) Кабы я ... Jul 17 2014, 15:06 ViKo Вот функция из usbd_cdc_if.c
Код/**
* @brief CD... Jul 20 2014, 10:14 Integro Цитата(ViKo @ Jul 20 2014, 13:14) ...
Ха,... Jul 23 2014, 08:12  ViKo Цитата(Integro @ Jul 23 2014, 11:12) Ха, ... Jul 24 2014, 12:19   Tahoe Цитата(ViKo @ Jul 24 2014, 16:19) Пытался... Jul 24 2014, 14:32    ViKo Цитата(Tahoe @ Jul 24 2014, 17:32) Ну да,... Jul 24 2014, 14:51 den_po Цитата(ViKo @ Jul 20 2014, 14:14) Вот фун... Jul 30 2014, 20:37  Atlantis- Цитата(den_po @ Jul 31 2014, 00:37) Если ... Jul 31 2014, 06:17  Atlantis- Цитата(den_po @ Jul 31 2014, 00:37) Если ... Oct 20 2014, 08:12 Golikov A. а галочки дебуг и трейс информация, 0 оптимизация ... Jul 24 2014, 12:25 ViKo Цитата(Golikov A. @ Jul 24 2014, 15:25) а... Jul 24 2014, 13:05 Golikov A. совсем недавно кто-то запускал тут ЛА и прочую фиг... Jul 24 2014, 19:02 ViKo Цитата(Golikov A. @ Jul 24 2014, 22:02) с... Jul 24 2014, 19:05 ViKo Вдруг взяло и заработало. ЛА показывает. Ничего,... Jul 24 2014, 21:11 ViKo Опять не работает ЛА. Чувствую, дело в температуре... Jul 25 2014, 08:54 Golikov A. драйвер CDC - вещь суровая, у меня есть RS485 - ви... Jul 25 2014, 20:37 ViKo По поводу логического анализатора вырисовывается с... Jul 26 2014, 11:39    den_po Цитата(Atlantis- @ Jul 31 2014, 12:2... Jul 31 2014, 10:05     Atlantis- Цитата(den_po @ Jul 31 2014, 14:05) А мож... Jul 31 2014, 10:42      den_po Цитата(Atlantis- @ Jul 31 2014, 14:4... Jul 31 2014, 12:18       Atlantis- Цитата(den_po @ Jul 31 2014, 16:18) Вот э... Jul 31 2014, 12:33        den_po Цитата(Atlantis- @ Jul 31 2014, 16:3... Jul 31 2014, 13:53       Atlantis- Цитата(den_po @ Jul 31 2014, 16:18) Хе, с... Aug 1 2014, 05:55 ViKo У меня внутри бесконечного цикла работает такой ко... Jul 31 2014, 07:36 Atlantis- ЦитатаПроверьте свежесгенерированный кубом код, из... Aug 1 2014, 11:08 den_po CDC_Transmit_FS нужно вызывать самостоятельно, ког... Aug 1 2014, 11:29 Atlantis- Цитата(den_po @ Aug 1 2014, 15:29) CDC_Tr... Aug 1 2014, 12:02 den_po Думаю, ерунда может приходить, если отправляются д... Aug 2 2014, 13:01 den_po Баг с мусором в F0 почти убрал. В функции usbd_con... Aug 3 2014, 00:16 Vsevolod Gromov Цитата(Предыдущий баг - должно быть 15, а не 5)
Н... Oct 15 2014, 16:29  den_po Цитата(Vsevolod Gromov @ Oct 15 2014, 20... Oct 17 2014, 20:26   Vsevolod Gromov Цитата(den_po @ Oct 18 2014, 00:26) Там д... Oct 20 2014, 10:23 den_po Последняя проблема - моя ошибка. Просто драйвер на... Aug 6 2014, 12:19 rudy_b Вопрос на ту же тему. Поднял Midware USB CDC (HAL)... Nov 14 2015, 16:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|