社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 银行
主题 : MDK9X35-EK_T70开发板keil裸机USB例程07:usb_hid_transfer(USB自定义HID设备例子)  t.sina.com.cn 分享到新浪微博   腾讯微博 转播到腾讯微博
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
楼主  发表于: 2014-02-11   

MDK9X35-EK_T70开发板keil裸机USB例程07:usb_hid_transfer(USB自定义HID设备例子)

这个例子模拟了一个向主机报告定制数据流的自定义HID设备,开发板上的LED和按键信息被打包在定制的数据流里面。
    当运行这个程序的开发板通过USB线连接到PC主机时,开发板在PC上显示为一个“USB人机接口设备(USB Human Interface Device)”,然后你可以使用客户端应用程序来对其进行读/写。



关键字:
ATMEL AT91 AT91SAM9X35 9X5 9X35 Keil MDK MDK9X5 MDK9X35 裸机 裸机程序 softpack 例子 例程 demo JLINK SAM-ICE USB Device Port(UDP) USB Humen Interface Device class(HID) USB人机接口设备 自定义设备 Transfer hidTest.exe



硬件平台:MDK9X35-EK_T70开发板
编译工具:KEIL uVision4
[ 此帖被Mcuzone_xyz在2014-02-12 14:09重新编辑 ]
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
沙发  发表于: 2014-02-11   
源程序需做如下修改:
(若已修改则无需再改动)

board.h文件:

113~115行:
//#define BOARD_REV_A_VB
//#define BOARD_REV_A_EK
#define BOARD_REV_B_EK
改为:
//#define BOARD_REV_A_VB
#define BOARD_REV_A_EK
//#define BOARD_REV_B_EK

755~760行:
#ifdef BOARD_REV_A_EK
/** Push button #0 definition. Attributes = pull-up + debounce + interrupt on rising edge. */
#define PIN_PUSHBUTTON_1    {PIO_PD18, PIOD, ID_PIOD, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}
/** Push button #1 definition. Attributes = pull-up + debounce + interrupt on falling edge. */
#define PIN_PUSHBUTTON_2    {PIO_PD19, PIOD, ID_PIOD, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}
#endif
改为:
#ifdef BOARD_REV_A_EK
/** Push button #0 definition. Attributes = pull-up + debounce + interrupt on rising edge. */
#define PIN_PUSHBUTTON_1    {PIO_PB17, PIOB, ID_PIOB, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}
/** Push button #1 definition. Attributes = pull-up + debounce + interrupt on falling edge. */
#define PIN_PUSHBUTTON_2    {PIO_PC31, PIOC, ID_PIOC, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}
#endif
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
板凳  发表于: 2014-02-11   
程序运行后,调试串口及设备管理器如下图所示
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
地板  发表于: 2014-02-11   
开发板用USB线与PC主机相连后,调试串口及设备管理器如下图所示
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
4楼  发表于: 2014-02-11   
然后打开usb_hid_transfer目录下的hidTest.exe客户端应用程序,选择开发板对应的HID Device,如下图所示:

Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
5楼  发表于: 2014-02-11   
使用hidTest.exe软件上的LED1、LED2按钮可以控制开发板上的2个用户LED,点击Monitor BUTTONs按钮后,软件会自动监视开发板上按键K2、K3的状态(相对应的灰色按钮BUTTON1、BUTTON2会上凸和下凹),如下图所示:


关于客户端应用程序hidTest.exe各部分的功能请参阅源程序的说明。
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
6楼  发表于: 2014-02-11   
在对客户端应用程序进行操作时,调试串口的输出如下图所示
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
7楼  发表于: 2014-02-11   
开发板上USB、按键K2、K3、LED位置如下图所示
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
8楼  发表于: 2014-02-11   
描述
快速回复

批量上传需要先选择文件,再选择上传
验证问题:
Keil是做啥的?
(备选答案:餐饮、编译器、聊天软件) 正确答案:编译器
按"Ctrl+Enter"直接提交