USB_HID C#测试例程
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相关的头文件及配置文件
完整开发包资料