31.01.2014, 00:41
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: STM32 + USB HID
Очень хорошо, что ногодрыг вами освоен. Можно приступать к USB.
|
|
|
|
05.08.2015, 22:39
|
|
Прохожий
Регистрация: 04.03.2009
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: STM32 + USB HID
А я вот не разобрался.
Тут было сказано:
Код:
|
#define USB_On GPIOС-›BSRR =GPIO_BSRR_BS12;// Выставили бит 12
#define USB_Off GPIOС-›BSRR =GPIO_BSRR_BR12;// Сброс бита |
А где в коде упоминается потом USB_On и USB_off. Там нет такого! Поиск в проекте через Ctrl+F ничего не дал.
Или я чего не понял.
Последний раз редактировалось RA3PKJ; 05.08.2015 в 22:47.
|
|
|
|
06.08.2015, 01:42
|
|
Прохожий
Регистрация: 04.03.2009
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: STM32 + USB HID
Ну ладно, это поправимо. Вопрос снят.
|
|
|
|
22.02.2016, 18:22
|
|
Прописка
Регистрация: 07.02.2016
Сообщений: 139
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM32 + USB HID
Чтобы не создавать новой темы спрошу здесь. Как правильно сделать процесс передачи данных с hid девайса на хост? Вот сделал я устройств которое раз в минуту делает измерение и получает уравнение экс. кривой. Хочу передавать данные на компьютер и записывать эти данные в файл. Мне для этого нужно каждую минуту отправлять с хоста данные девайсу о передачи информации или есть какая возможность чтобы девайс после измерения сразу передал данные и хост смог поймать и обработать (записать в файл, набираю статистику)? Пользуюсь библиотекой hidapi работаю в wisual studio.
|
|
|
|
22.02.2016, 20:33
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: STM32 + USB HID
Инициатором передачи всегда будет хост. Ваше устройство либо должно сообщать хосту, что пока ему нечего передавать, либо хост должен запрашивать с девайса данные каждую минуту. Это зависит от того, где эту минуту вам проще отсчитывать.
|
|
|
|
27.02.2016, 06:19
|
|
Прописка
Регистрация: 07.02.2016
Сообщений: 139
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM32 + USB HID
А можно передавать больше одного мегабайта по usb hid?
|
|
|
|
27.02.2016, 09:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.03.2007
Сообщений: 1,365
Сказал спасибо: 85
Сказали Спасибо 625 раз(а) в 377 сообщении(ях)
|
Re: STM32 + USB HID
Сообщение от Alex_golubev
|
А можно передавать больше одного мегабайта по usb hid?
|
Почему бы и нет. Любой размер данных. Мелкими пакетами.
Главное, чтобы размер одного пакета не превышал 64 байта (это я по памяти, но вроде так).
P.S. Медленно только все это будет. 64 кб/сек. максимум.
|
|
|
|
27.02.2016, 12:44
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,087
Сказал спасибо: 2,564
Сказали Спасибо 11,898 раз(а) в 5,971 сообщении(ях)
|
Re: STM32 + USB HID
Сообщение от pambaru
|
64 кб/сек. максимум.
|
Только кБ, а не кб. Каждую миллисекунду по 64 байта.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
28.02.2016, 11:40
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: STM32 + USB HID
Сообщение от pambaru
|
Главное, чтобы размер одного пакета не превышал 64 байта (это я по памяти, но вроде так).
|
Правильно было бы еще указать для какой скорости, 64 байта это для full-speed USB, 8 байт для low-speed и 1024 байта для high-speed.
Отсюда вывод, если хотите больше гнать данных, то используйте high-speed
|
|
|
|
01.03.2016, 19:32
|
|
Прописка
Регистрация: 07.02.2016
Сообщений: 139
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM32 + USB HID
Столкнулся с проблемой запуска hid на другом компьютере. Создал проект приема передачи по hid на своем дом компе (проект простой хост отсылает данные девайс принимает и эти же данные отсылает обратно что-то типа эха). Запустил проверил все работает пришел за другой комп. запускаю и не чего не работает. Консоль показывает пусто в приеме. Типо приняла пустой массив. Такое ощущение что как будто два таких id это я предполагаю. Вот мой репорт
Код:
|
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_HS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
{
/* USER CODE BEGIN 1 */
0x06, 0x00, 0xff, // USAGE_PAGE (Generic Desktop)
0x09, 0x01, // USAGE (Vendor Usage 1)
// System Parameters
0xa1, 0x01, // COLLECTION (Application)
0x19,0x01,
0x29,0x40,
0x15,0x00,
0x26,0xff,0x00,
0x75,0x08,
0x95,CUSTOM_HID_EPIN_SIZE,
0x81,0x02,
0x19,0x01,
0x29,0x40,
0x25,0x08,
0x95,CUSTOM_HID_EPIN_SIZE,
0x91,0x02,
/* USER CODE END 1 */
0xC0 /* END_COLLECTION */
}; |
вот код передачи hid api
Код:
|
hid_set_nonblocking(handle, 1);
buf[0] = 1; // В первом байте находится номер репорта
buf[1] = 'A';
buf[2] = 'B';
buf[3] = 'C';
buf[4] = 'D';
buf[5] = 'E';
res = hid_write(handle, buf, 65); |
вот прием
Код:
|
res = 0;
while (res == 0) {
res = hid_read(handle, buf, sizeof(buf));
if (res == 0)
printf("waiting...\n");
if (res ‹ 0)
printf("Unable to read()\n");
#ifdef WIN32
Sleep(500);
#else
usleep(500*1000);
#endif
} |
Честно скажу что данные репорт взял с сайт st. И если ошибка и правду в репорте то попрошу поменять id так как еще не до конца понял как правильно собирать эти репорта.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:25.
|
|