|
11 / 10 / 3
Регистрация: 15.11.2015
Сообщений: 250
|
||||||
USB программирование03.08.2020, 12:33. Показов 2673. Ответов 12
Метки нет (Все метки)
Подскажите пожалуйста, в чем может быть ошибка.
Никак не подключусь к USB устройству. Компиляция проходит хорошо.
При запуске программы ./file_vivod выдает printf("Устройство не подключено\n"); Хотя устройство в системе подключено lsusb user@user-H55M-UD2H:~/usbport$ lsusb Bus 001 Device 005: ID 12d1:1436 Huawei Technologies Co., Ltd. Broadband stick Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse Bus 005 Device 004: ID 108f:0001 Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 002: ID 1a2c:2124 China Resource Semico Co., Ltd Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Ни Huawei Technologies не могу подключиться, ни ID 108f:0001 Хотя реально они подключены.
0
|
||||||
| 03.08.2020, 12:33 | |
|
Ответы с готовыми решениями:
12
USB программирование Программирование МК по USB. Решено. Программирование Com/USB порта |
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|
| 03.08.2020, 13:30 | |
|
А права на это устройство у вашего юзера есть?
0
|
|
|
11 / 10 / 3
Регистрация: 15.11.2015
Сообщений: 250
|
|
| 03.08.2020, 14:28 [ТС] | |
|
Я пока очень слабо разбираюсь в Linux.
Вы не подскажите как поменять права на USB, чтобы user мог пользоваться. Bus 001 Device 005: ID 12d1:1436 Huawei Technologies Co., Ltd. Broadband stick
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|
| 03.08.2020, 14:34 | |
|
Для теста можно запустить вашу программу от рута и посмотреть найдется устройство или нет. Если найдется можно начинать разбираться с правами, если нет - с кодом.
0
|
|
|
11 / 10 / 3
Регистрация: 15.11.2015
Сообщений: 250
|
|
| 03.08.2020, 14:42 [ТС] | |
|
Да все верно, запускаю программу под root через sudo и программа четко находит устройство !!!
Как я сам не догадался, вот я лошара ))) Подскажите пожалуйста, как дать права useru для использования USB устройства.
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
||||||
| 03.08.2020, 19:27 | ||||||
|
Это делается через udev. Нужно написать правило вроде
/etc/udev/rules.d/99-myusbhid.rulesЧисла в имени файла указывают приоритет запуска (чем больше, тем приоритет ниже), имя может быть любое.
0
|
||||||
|
11 / 10 / 3
Регистрация: 15.11.2015
Сообщений: 250
|
|
| 04.08.2020, 12:03 [ТС] | |
|
Спасибо большое за подсказку.
Сделал следующим образом. Создал файл /etc/udev/rules.d/99-myusbhid.rules Внес запись SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", GROUP="user", MODE="0660" Перезагрузил udev sudo udevadm control --reload-rules Но этого оказалось мало. И только после того как перезагрузил комп, все хорошо заработало. Спасибо !!!
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|
| 04.08.2020, 12:17 | |
|
Я так понимаю, VID/PID вы заменили на свои, раз заработало?
Ну и имя было бы неплохо поменять. Наверное, у вас устройство что-то другое делает, не HID.
0
|
|
|
11 / 10 / 3
Регистрация: 15.11.2015
Сообщений: 250
|
|
| 04.08.2020, 12:25 [ТС] | |
|
Да VID/PID поменял. У меня устройство омметр HIOKI, нужно подавать команду ":FETCH?" для того чтобы считывать данные с омметра.
Подаю команду, омметр возвращает измеренное значение. Сейчас ищу как отправить команду через USB на омметр, Пишут что функция такаяже как просто запись в файл. Также пишут такую функцию libusb_bulk_transfer(handle, 0x01, buf, 10, &transfered, 1000); Пока вот ищу, пока толком не разобрался )))
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|
| 05.08.2020, 10:08 | |
|
Команда ":FETCH?" больше похожа на работу по COM-порту, это там обмен идет текстовыми строками. В USB же обмен бинарнымми структурами.
Вы уверены что это устройство не отображается на какой-нибудь /dev/tty*?
0
|
|
|
11 / 10 / 3
Регистрация: 15.11.2015
Сообщений: 250
|
||||||
| 06.08.2020, 15:08 [ТС] | ||||||
|
Да совершенно верно команда :FETCH? для COM порта.
Но оказалось что эта команда также работает и на USB порт. unsigned char Buff[255]; unsigned char comanda[]=":FETCH?\n"; unsigned char BufFetch[]=":FETCH?"; // отправляю команду ":FETCH?" на прибор омметр. libusb_bulk_transfer(handle, 0x01, comanda, sizeof(BufFetch), &transfered, 1000); // получаю данные с прибора libusb_bulk_transfer(handle, 0x82, Buff, 10,&transfered, 1000); cout<<"Buff = " <<Buff<<endl; Если комуто интересно, вот полная программа которая работает.
1
|
||||||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
||
| 07.08.2020, 08:07 | ||
|
0
|
||
|
11 / 10 / 3
Регистрация: 15.11.2015
Сообщений: 250
|
|
| 10.08.2020, 07:44 [ТС] | |
|
В продолжение темы.
Программа которая приведена выше работает через USB кабель USB to USB. Но если поставить переходник-конвертер USB в COM ( USB 2.0 to RS232 DB9 Serial Adapter Cable, Chipset PL2303 ) В таком случае программа не работает. Никак не пойму причину ошибки " libusb: error [submit_bulk_transfer] submiturb failed error -1 errno=2 " Может кто-то знает. Почему программа не работает через конвертер ?
0
|
|
| 10.08.2020, 07:44 | |
|
Помогаю со студенческими работами здесь
13
Программирование USB устройства Программирование USB контроллера MAX3420E Программирование под USB порты программирование на Java USB и COM портов Программирование stm32f103 по usb ли USART Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|