Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 03.10.2013, 09:40  
omskcity_net
Прохожий
 
Регистрация: 23.09.2010
Сообщений: 5
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
omskcity_net на пути к лучшему
Вопрос STM32 USB Bulk

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

Потребовалось организовать передачу массивов данных размером в 1КБ с девайса в хост.
Подсмотрел на easyelectronics-e у Ezhik.
Посидел, подрихтовал под свою плату.
Избавился от ненужных двух ендпоинтов.
В общем - завелось и поехало. USBTrace прекрасно видит это устройство, видит два (не считая нулевой) ендпоинта.
Написал простенькую программульку в VisualStudio на C# с использованием LibUsbDotNet.
Всё-равно что отправить девайсу - он должен вернуть массив в 1КБ.
Поэтому на девайсе не проверяю, что пришло...

Всё ничего... только не могу отловить передачу этого массива.

USBTrace не видит фрагментов по 1КБ.
Но в прикладной программке иногда пробегает что-то похожее на правду в перемешку с ерундой.

Кто использовал bulk - поскажите - где грабли ?

PS: По CDC передавал - проблем нет. Но хотелось уйти от COM-порта.
Код:
// process the request
int usb_handle_command() {
	GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);		//LED On
	USB_SIL_Write(EP1_IN, &fr[ptr], 1024);
	SetEPTxValid(ENDP1);
	ptr++;
	 if ( ptr › FRAMESIZE-1 ) ptr = 0;
	GPIO_ResetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);		// LED Off
}
Код:
// Callback for endpoint 2.
void EP2_OUT_Callback(void)
{
    SetEPRxStatus(ENDP2, EP_RX_VALID);
// process the request
    usb_handle_command();
}
C#
Код:
        private void timer1_Tick(object sender, EventArgs e)
        {
            int n;
            byte[] buf = null;
            buf = new byte[1024];
            // Если порт доступен - запрашиваем data frame с внешнего устройства
            if (MyUsbDevice.IsOpen)
            {
                reader.ReadFlush();
                writer.Write("r",0,1,10, out n);
                ErrorCode ec = reader.Read(buf, 0, 1024, 100, out n);
                if ( true /* n == 1024 */)

                {
                    label4.Text = ec.ToString();
                    Series plot = chart1.Series[0];
                    // Отчищаем график
                    plot.Points.Clear();
                    // Рисуем график
                    for (int i = 0; i ‹ 1024; i++)
                    {
                        plot.Points.AddXY(i, buf[i]);
                    }

                }
                else
                {
                           dropframes++;
                           label4.Text = dropframes.ToString();
                }

            }
            
        }
В C#-ом коде по выходу из reader.Read(buf, 0, 1024, 100, out n), n = 0 и статус = Succes.
Но изредка в массиве данные, похожие на правду. Но кусочно.

Прикладываю проект в CoCox тут
и проект в VS тут
Реклама:
omskcity_net вне форума  
 

Закладки

Метки
bulk endpoint, stm32f1, usb
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печатная плата USBee AX picavr Барахолка электронных компонентов 950 20.08.2023 17:11
USB на AT90USBxxx под ASM AlexWonder AVR 13 06.06.2015 00:50
Не могу запустить USB контроллер ATMega32U4 Slava1355 AVR 12 29.09.2014 14:58
usb и stm32 liba(отработка подключение и откл) andrey9806 ARM 4 03.06.2013 00:08
Питание USB устройств nml Делимся опытом 1 11.02.2010 14:06


Часовой пояс GMT +4, время: 15:17.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot