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

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

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

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

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

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


 
Опции темы

STM32 USB Bulk

Непрочитано 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, время: 22:10.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.