2. Main Loop Flow:
- 切換HID/VCP仍舊在usb_define.h.
- 切換HID RAW/KB/MOUSE仍舊在usb_define.h.
- 主程式裡面仍舊是維持2個Task, 所有的測試程式都是在Task2裡面.
- 這一次的範例程式中只要是MCU To PC的資料, 都要按下USER Button後才會發送到PC (e.g. VCP/KB/MOUSE/HID Interrupt In).
- VCP/KB/MOUSE的展示方式不變, 只是需要按下USER Button才會觸發.
3. How to test HID Interrupt In/Out?
- Interrupt In:
- 當按下USER Button後, MCU會從Endpoint 1 in端點送出65bytes給PC.
- 65bytes = Report ID(1byte) + Data(64bytes).
- Report ID = 0x03.
- Data = 0x00 ~ 0x3f.
- Interrupt Out:
- 使用者可以使用AP(e.g. Bus Hound)透過Endpoint 1 out端點對MCU送出資料, 目前設定長度為64Bytes.
- 由於本範例目前USB Descriptor有設定Keyboard, 所以當按下鍵盤上的Caps-Lock & Scroll-Lock & Num-Lock按鍵時, PC會對系統上所有的Keyboard下達LED On/Off的指令, 因此我們也會根據MCU收到不同的指令, 來亮不同的LED.
- 本開發板上共有4顆LED, 其中3顆會用來處理Caps-Lock/Scroll-Lock/Num-Lock這三個系統指令, 最後1顆LED會用來測試使用者自定義的指令, 當收到的資料為Report_ID = 0x03的資料時, 會去Toggle LED.
4. 程式測試環境:
- IAR EWARM v7.4.
- STM32F072B Discovery Board.
5. Test Code Download Link:
沒有留言:
張貼留言