USB_HID C#測試例程
報告模式(按鍵、LED、ADC)
一、簡介
Usb無處不在,而hid則免驅,使用更加方便,本方案主要是基於STM32F10X系列單片機的usb hid開發,計算機軟件采用VS2013 C#開發。
二、接線圖示意
三、開發測試環境
兼容系統:XP、WIN7
測試系統:WIN7 64bit(已驗證)
開發工具:MDK 5.11
MCU型號:STM32F103CBT6(3.5版本固件庫)
測試軟件:HidConnerCs.exe(基於C#的USBHID工具)
測試硬件:STM32-48(SWD) stm32核心板
測試固件:Custom_HID STM32_48(swd)_NOADC.hex
四、測試方式:
板卡usb供電,上電后所有燈點亮后熄滅,然后D2燈閃爍。
使用mini-usb數據線鏈接電腦、通過上位機軟件可以控制LED和獲取按鍵的狀態和adc值
硬件展示:
僅此核心板就可以測試該功能,程序通過swd,4線下載。
硬件對應作用:
LED2(每秒閃爍,指示程序運行正常)
LED5(LED1)
LED4(LED2)
LED3(LED3)
ADC:PA0輸入,進度條展示adc值
KEY:PC13,S2中間按鈕
調試注意事項:
1、usb無法識別:電源紋波太大,或濾波電容過小,增加濾波電容值即可解決
軟件使用:
上位機編譯注意事項
之前在win7 64bit下訪問出錯,修改這個就好了,xp下曾經測試是ok的
軟件使用:使用索引可以列出所有的hid設備,和可以訪問的hid設備
輸入當前的PID和VID打開此設備
此時:進度條可以看到ADC采樣值,若adc懸空,可以看到在中間,可以通過短路線,對PA0對地或VCC聯通,可以看到變為0和255。通過按S2按鍵,可以看到中間按鈕變紅或灰。
通過LED控制,1、2、3可以控制對應D5、D4、D3亮或滅
注意:4無效,因為用於作為狀態指示燈了。
固件源碼
在工程管理中、采用通過文件庫存放在固定位置,即與工程文件獨立並共享、所以編譯中需要處理以下問題
標准固件庫路徑:
D:\lib\ST_STD\STM32F10X_Lib :STM32標准外設庫 3.5
D:\lib\STM32_USB\V301 :stm32-usb庫 3.01
D:\lib\CM3 :與cm3相關的頭文件及配置文件
完整開發包資料