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

MDK9X35-EK_T70开发板keil裸机USB例程06:usb_hid_msd(复合USB设备 HID键盘和U盘例子)

这个例子模拟了一个复合USB设备,该设备集成了HID键盘功能和U盘功能。
    当运行这个程序的开发板通过USB线连接到PC主机时,开发板在PC上显示为一个HID键盘和一个U盘。然后你可以使用开发板上的按键来给PC主机输入字母(HID键盘功能),也可以向该U盘写入数据(U盘功能)



关键字:
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人机接口设备 键盘 USB Device Mass Storage MSD USB Disk U盘



硬件平台:MDK9X35-EK_T70开发板
编译工具:KEIL uVision4



注意:该演示例子在windows XP (SP3)下进行,运行该例子对PC主机的要求请参阅源程序里面的说明。
[ 此帖被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
做以上修改后,则开发板上的K2按键作为'Num Lock',K3作为'a'。
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
板凳  发表于: 2014-02-11   
程序运行后,调试串口及设备管理器如下图所示
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
地板  发表于: 2014-02-11   
开发板用USB线与PC主机相连后,调试串口及设备管理器如下图所示
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
4楼  发表于: 2014-02-11   
复合USB设备中的键盘参考:http://www.mcuzone.com/bbs/read.php?tid=10815&page=1&toread=1#55688
复合USB设备里的U盘(需先对其格式化)
Mcuzone_xyz 离线
级别: 金卡会员
显示用户信息 
5楼  发表于: 2014-02-11   
描述
快速回复

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