Search the Community

Showing results for tags 'USB HID'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • AVR
    • PIC
    • STM32
    • Arduino и Raspberry Pi
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Конкурсы сайта с призами
    • Сайт Паяльник и форум
    • Курилка
    • Технический английский (English)
    • Наши проекты для Android и Web
    • FAQ (Архив)
    • Личные блоги
    • Корзина
    • Вопросы с VK
  • Переделки's ATX->ЛБП
  • Киловольты юмора's Юмор в youtube
  • Радиолюбительская доска объявлений exDIY's Надежность и группы продавцов
  • Переделки's разные темы

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Город


Сфера радиоэлектроники


Оборудование

Found 3 results

  1. Доброго времени суток! Вот занялся связью AVR с компом по USB и как раз попались мне статьи с использованием HID и соответственно hidlibrary.h. Сделал устройство, описанное в статье http://cxem.net/comp/comp129.php, а оно, в свою очередь основывается на http://we.easyelectronics.ru/electro-and-pc/usb-dlya-avr-chast-2-hid-class-na-v-usb.html. Прошитый контроллер нормально определяется системой, показывает VID и PID, и даже готовый софт (в первой статье) нормально с ним взаимодействует. А вот написать свой софт не выходит... Обнаружилось, что функция int connect() // этой функцией будем подключаться к устройству { int i, n, res = 0; string exampleDeviceName = ""; exampleDeviceName += vendorName; exampleDeviceName += " "; exampleDeviceName += productName; n = hid.EnumerateHIDDevices(); for (i = 0; i < n; i++){ hid.Connect(i); if ( hid.GetConnectedDeviceName() == exampleDeviceName ){ res = 1; break; } } return res; } почему-то не хочет коннектиться. Выяснилось, что код if ( hid.GetConnectedDeviceName() == exampleDeviceName ){ res = 1; break; } нормально не отрабатывает, то есть hid.GetConnectedDeviceName() всегда возвращает пустую строку. Проверка подтвердила, что счетчик устройств не равен нулю, а в моем случае находит два устройства - мышку и подключенный контроллер. Кто-то сталкивался с такой проблемой? Почему функция не выводит названия устройств? Писал софт на С++ Builder 2007. Встречал заметки, что на билдер ставили какой-то апдейт, но я так понял что говорили о версии 6 и соответственно update 4. Пробовал установить эту версию (с апдейтом), однако результат компиляции софта был таким же. Система - Windows 7 SP1 x64
  2. Возникла проблема с написанием программы (host) USB HID Термометр на языке С для Linux, с использованием библиотеки libusb. Прошивку взял пока готовую с сайта, по аналогии идущей в комплекте программы host'a начал делать сам на С. Оборудование находится по VID:PID. Cчитываю 8 байт, конвертирую и получаю непонятный результат который не меняеться (+32,0 С). При просмотре содержимого буфера - оно меняется при каждом опросе. Не могу понять что делаю не так. Может кто в курсе. Код программы: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <math.h> #include <libusb-1.0/libusb.h> #include <iostream> using namespace std; #define DEV_VID 0xaaaa #define DEV_PID 0xef04 #define DATA_SIZE 8 //#define DEV_CONFIG 1 #define DEV_INTF 0 #define EP_IN 0x81 #define EP_OUT 0x01 int main(int argc, char * argv[]) { libusb_device_handle * handle; int ret; unsigned char buf[DATA_SIZE]; libusb_init(NULL); libusb_set_debug(NULL, 3); //получим handle устройства handle = libusb_open_device_with_vid_pid(NULL, DEV_VID, DEV_PID); if (handle == NULL) { printf("Не удалось найти устройство\n"); libusb_exit(NULL); return 0; } if (libusb_kernel_driver_active(handle,DEV_INTF)) libusb_detach_kernel_driver(handle, DEV_INTF); //захватываем интерфейс if (libusb_claim_interface(handle, DEV_INTF) < 0) { printf("Ошибка интерфейса\n"); libusb_close(handle); libusb_exit(NULL); return 0; } //считываем данные в буфер int returned = libusb_interrupt_transfer(handle, EP_IN, buf, DATA_SIZE, &ret, 5000); if (returned >= 0) { std::cout << "buf[0] = " << (int)buf[0] << std::endl; std::cout << "buf[1] = " << (int)buf[1] << std::endl; std::cout << "buf[2] = " << (int)buf[2] << std::endl; std::cout << "buf[3] = " << (int)buf[3] << std::endl; std::cout << "buf[4] = " << (int)buf[4] << std::endl; std::cout << "buf[5] = " << (int)buf[5] << std::endl; std::cout << "buf[6] = " << (int)buf[6] << std::endl; std::cout << "buf[7] = " << (int)buf[7] << std::endl; } //вывод содержимого буфера на экран for (int i = 0; i < DATA_SIZE; i++) std::cout << buf << std::endl; //переводим данные в hex { printf("Buf: "); for(unsigned i = 0; i<sizeof(buf); i++){ printf("0x%02x ", buf[i] & 0xff); } printf("\n"); } //конвертируем данные uint8_t temp_lo = buf[1] & 0xff; uint8_t temp_hi = buf[0] & 0xff; int16_t temp = (temp_hi << 8) | (temp_lo); float temp_f = temp / 16.0; // low 4 bits of temp are fractional part { temp_f *= 10; temp_f = round(temp_f); temp_f /= 10; printf("%+.1f\n", temp_f); } // отдаем интерфейс и закрыаем библиотеку libusb_attach_kernel_driver(handle, DEV_INTF); libusb_close(handle); libusb_exit(NULL); return 0; } компилирую: g++ -o usb main.c -lusb-1.0
  3. Доброго времени суток уважаемые знатоки. Пытаюсь в "протеусе" моделировать схему с этого сайта "USB устройство ввода-вывода на PIC18F4550 с 16 цифровыми I/O и 8 аналоговыми входами". Устройство определяется через раз после перезагрузки компа. Что может быть, подскажите пожалуйста.