![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Oct 2005
Bài gửi: 8
: |
Khi sử dụng HID class thì việc tạo ra report là quan trọng nhất, nó cho hệ thống biết thiết bị gửi những gì, bao nhiêu byte v.v... sau đó bạn chỉ việc gửi cho đúng cấu trúc đó. Ví dụ tôi làm report về thiết bị chuyển dổi tín hiệu bộ phát điều khiển từ xa dùng cho máy bay mô hình. Dữ liệu tôi cần gửi đi có quãng cách 10ms/1 lần report, mỗi lần gửi 8 byte thì report như sau:
PHP Code:
PHP Code:
Với vài sửa đổi đơn gian như độ dài config, descriptor, report v.v... bạn đã có thể dịch lại mẫu ví dụ của Microchip và trở thành Joystick. Việc còn lại và xử lý dữ liệu tức là chuyển đổi ADC hay PPM để có dữ liệu các trục X, Y, Z để gửi đi mà thôi. Khỏi cần đọc nhiều USB làm gì, như thế nào. Cái bạn cần đọc là HID CLASS mà thôi. ĐỐi với USB <> RS-232 sử dụng CDC class, có ví dụ sẵn trong firmware của Microchip rồi. bạn cũng phải dùng cấu trúc report theo mẫu, và khi cắm thiết bị vào hệ thống, bạn sẽ phải cài driver của Microchip (có kèm theo firmware) Tôi dùng libUSB win32 làm thư viện chính thì cũng làm được việc nhận gửi dữ liệu 2 chiều. Tôi viết giao diện để cho PIC nhận dữ liệu với lệnh OUTPUT(Data,Var,Abs). Mọi việc cũng khá đơn giản. |
![]() |
![]() |
|
|