[c++] libusb와 USB 디바이스 연결
USB 디바이스를 프로그램에 연결하여 데이터를 송수신하려면 libusb 라이브러리를 사용할 수 있습니다. libusb는 USB 장치를 제어하기 위한 크로스 플랫폼 라이브러리로, C/C++로 작성된 애플리케이션에서 사용할 수 있습니다.
libusb 설치 및 설정
libusb를 사용하기 위해서는 먼저 시스템에 라이브러리를 설치해야 합니다. 대부분의 리눅스 시스템에서는 표준 패키지 관리자를 통해 libusb를 설치할 수 있으며, Windows에서는 libusb의 바이너리를 직접 다운로드하여 설치할 수 있습니다.
라이브러리가 설치되면 프로젝트의 빌드 설정에 libusb를 포함시켜야 합니다. 필요한 헤더 파일과 라이브러리를 프로젝트 설정에 추가하여 libusb를 사용할 수 있도록 해야 합니다.
USB 디바이스 연결하기
libusb를 사용하여 USB 디바이스를 연결하려면 다음과 같은 단계를 따릅니다.
- libusb를 초기화합니다.
#include <libusb.h>
libusb_init(NULL);
- 디바이스를 검색하여 디바이스 목록을 가져옵니다.
libusb_device **devs;
libusb_get_device_list(NULL, &devs);
- 필요한 디바이스를 선택하고 디바이스 핸들을 엽니다.
libusb_device_handle *handle = libusb_open_device_with_vid_pid(NULL, vendor_id, product_id);
- 디바이스로 데이터를 전송하거나 데이터를 수신합니다.
unsigned char data[64];
int transferred;
libusb_bulk_transfer(handle, endpoint_out, data, sizeof(data), &transferred, timeout);
- 작업을 마치면 디바이스 핸들을 닫고 libusb를 종료합니다.
libusb_close(handle);
libusb_free_device_list(devs, 1);
libusb_exit(NULL);
마치며
libusb를 사용하여 USB 디바이스를 연결하고 제어하는 방법을 살펴보았습니다. USB 디바이스를 다루는 작업을 프로그래밍으로 자동화하고자 할 때 libusb는 매우 유용한 라이브러리입니다.
더 많은 정보를 원하시면 libusb 공식 웹사이트에서 확인하시기 바랍니다.