나는 시도하고 싶은 PIC32 USB 프로젝트를 위해 C에서 USB HID 디스크립터를 만드는 것에 대해 조금 교육하려고합니다.
http://www.usb.org/developers/hidpage/ 에서 HID Usage Tables 문서를 다운로드 했으며 HID 설명 자의 다른 요소에 대한 실제 값이 표시되는 위치를 파악하려고했습니다.
내가보고있는 샘플에서 발췌하여 설명하겠습니다.
ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={{
0x05,0x01, // USAGE_PAGE (Generic Desktop)
0x09,0x05, // USAGE (Game Pad)
0xA1,0x01, // COLLECTION (Application)
0x15,0x00, // LOGICAL_MINIMUM(0)
0x25,0x01, // LOGICAL_MAXIMUM(1)
0x35,0x00, // PHYSICAL_MINIMUM(0)
0x45,0x01, // PHYSICAL_MAXIMUM(1)
// ...
위의 예에서 BYTE 배열이 키 / 값 쌍으로 구성되어 있음을 알 수 있습니다. 예를 들어 두 번째 줄 : 0x05,0x01 은 키 0x05 ( 사용 페이지 )를 나타내고 0x01은 일반 데스크탑을 나타내는 값을 나타냅니다.
이 값이 HID Usage Table PDF 문서에서 어디에 표시되는지 알아 내려고합니다. 예를 들어, 나는 참조를 찾을 수 없습니다
USAGE_PAGE == 0x05
예를 들어
COLLECTION == 0xA1
0xA1에 대한 PDF를 검색했지만 결과가 없습니다. 값이 무엇인지 알 수있는 유일한 방법은 예제의 주석을 보거나 위의 링크에서 USB 디스크립터 도구 를 사용하는 것 입니다.
궁금한 점이 있습니다.이 키 / 값 참조 문서가 누락되어 완전히 멍청합니까?
http://www.frank-zhao.com/cache/hid_tutorial_1.php 와 같이 온라인에는 많은 예제가 있습니다 .
그러나 이것조차도 END_COLLECTION == 0xc0 과 같은 많은 문자열 값을 참조합니다.
이 값에 대한 참조는 어디에서 찾을 수 있습니까? 내가 무엇을 놓치고 있습니까?