hid-custom-rq 是 V-USB 所附的一個範例,它示範如何定義 HID class device。hid-custom-rq 功能跟 custom-class 範例一樣,不過它宣告成 HID device,由於 Windows 內建 HID driver,因此 Windows 不會要求安裝驅動程式。
hid-custom-rq 一樣可以用 custom-data 所附的 commandline 工具,透過 libusb-win32 來控制裝置。libusb-win32 dll 必須跟 commandline 工具放在同一個資料夾。
下載
hid-custom-rq 包在 V-USB 套件裏:
韌體調整
hid-custom-rq 需要調整的地方跟 custom-data 一樣:
● usbconfig.h:
定義所用的 D+ 和 D- data lines 腳位。必須根據你的硬體調整 USB_CFG_IOPORTNAME, USB_CFG_DMINUS_BIT 和 USB_CFG_DPLUS_BIT。
● Makefile:
定義所用的 MCU 跟時脈頻率,必須根據你的硬體調整 DEVICE 和 F_CPU。
- main.c
定義所用的 LED 接腳,必須根據你的硬體調整 LED_PORT_DDR, LED_PORT_OUTPUT 和 LED_BIT。
編譯韌體
下指令編譯韌體,你會需要 WinAVR:
cd hid-custom-rq/firmware
make hex
接著把韌體燒錄到板子上,讓裝置重新上電,然後,「裝置管理員」視窗裏就會出現剛剛安裝的裝置,不用安裝驅動程式:
▲ Windows 會將新裝置當成「HID-compliant device」
編譯 PC 端指令列工具 (commandline)
下指令編譯 PC 端指令列工具,你會需要 MingGW, MSYS 和 libusb-win32 函式庫:
cd hid-custom-rq/commandline
make -f Makefile.windows
這會產生 set-led.exe。
註:libusb-win32 函式庫的安裝方法為,把 include\usb.h 複製到 C:\MingW\include\,而把 lib\gcc\libusb.a 複製到 C:\MingW\lib。
使用 hid-custom-rq
hid-custom-rq 的用法跟 custom-class 一樣:
打開 LED:
set-led on
關閉 LED:
set-led off
查詢 LED 狀態
set-led status
假如 LED 是開的,set-led status 會顯示 "LED is on",否則的話會顯示 "LED is off"。
註:雖然指令列工具是同一支,但因為 hid-custom-rq 用的 VID/PID 跟 custom-data 不一樣,custom-data 用的是 0x16c0/0x05dc,而 hid-custom-rq 的是 0x16c0/0x05df,所以 set-led 指令列工具必須重新編譯才行,不然執行時會找不到 device。
0 意見:
張貼留言