原创 在万利的STM32学习板上实现USB多媒体键盘

2008-7-30 15:00 10732 11 27 分类: MCU/ 嵌入式

   圈圈通过对原来的USB摇杆实例进行修改,做了一个
USB HID多媒体键盘,可以调节音量、启动Windows Media
播放器、停止/暂停播放、打开网页、打开计算器等等功能。
由于摇杆和多媒体键盘都是HID设备,因而改动的工作量很
少,只需要修改一下VID、PID,字符串描述符、报告描述
符、返回报告的格式即可。
  板上各按键的功能分配如下:摇杆往上音量增加;摇杆
往下音量降低;摇杆往左静音;摇杆往右启动Windows
Media播放器;摇杆中键(确认键)为播放/暂停(对千千
静听等播放器也有效);按键KEY2为打开网页;按键KEY3
为打开计算器。
   从这里下载整个代码包:rar
下载该压缩包,解压到Manley\EKBoard\EKSTM32F\
USBDemo(8M osc)\USBDemo\USBLib\demos目录下,
然后编译,烧写调试即可。
    运行后可以看到弹出的新硬件,以及设备管理器
中的设备,一个为HID设备,一个为标准用户控制设备,
如下图所示:


点击看大图



报告描述符的代码如下:


const u8 ReportDescriptor[SIZ_REPORT_DESC] =
{
 0x05, 0x0c, // USAGE_PAGE (Consumer Page)
 0x09, 0x01, // USAGE (Consumer Control)
 0xa1, 0x01, // COLLECTION (Application)
 0x09, 0xea, //   USAGE (Volume Decrement)
 0x09, 0xe9, //   USAGE (Volume Increment)
 0x09, 0xe2, //   USAGE (Mute)
 0x09, 0xcd, //   USAGE (Play/Pause)
 0x0a, 0x83, 0x01, //USAGE (Windows Media Player(0x183))
 0x0a, 0x23, 0x02, //USAGE (AC Home(0x0223))
 0x0a, 0x92, 0x01, //USAGE (AL Calculator(0x192))
 0x15, 0x00, //     LOGICAL_MINIMUM (0)
 0x25, 0x01, //     LOGICAL_MAXIMUM (1)
 0x95, 0x07, //     REPORT_COUNT (7)
 0x75, 0x01, //     REPORT_SIZE (1)
 0x81, 0x02, //     INPUT (Data,Var,Abs)
 0x75, 0x01, //     REPORT_SIZE (1)
 0x95, 0x01, //     REPORT_COUNT (1)
 0x81, 0x03, //     INPUT (Cnst,Var,Abs)
 0xc0        // END_COLLECTION
}; /* ReportDescriptor */


 


怎样?好玩吧?记得给圈圈投票哦~~~点左上角那个“顶一下”,谢谢了~~~

PARTNER CONTENT

文章评论18条评论)

登录后参与讨论

用户447435 2013-9-5 15:07

Thu Sep 05 15:09:02 2013: Writing outside flash memory at address 0x0

用户966982 2013-2-22 16:48

感谢提供的资料,呵呵,学习了

computer00 2012-10-20 11:55

可以自己加上啊,练习的好机会。

用户377235 2012-10-10 10:15

为什么没有上一首下一首呢?

用户377235 2012-7-21 17:56

无法识别啊???烧录在stm32f103vct6上失败

用户1433187 2009-6-26 11:08

回家试试!

用户601697 2008-10-30 10:43

谢谢圈圈

computer00 2008-9-17 13:00

既然是USB转串口,那最终应该要有一个串口吧?你往那个串口发送数据,就会显示在超级终端上了。就像你电脑上的串口一样,你发数据给它,打开超级终端也是没得显示的。

用户1572896 2008-9-17 09:25

怎么操作啊?有空的话能详细解释一下么,程序我都还没看懂,我再看看

computer00 2008-9-17 00:16

应该要往串口(板上的串口)发送数据,才有显示吧。
相关推荐阅读
computer00 2013-06-05 16:27
[招聘]Android系统开发工程师
任职要求: 1. 扎实的C/C++基础,熟悉嵌入式Linux和Android操作系统的软件开发; 2. 良好的沟通能力和逻辑思维能力; 3. 良好的英文文献阅读能力; 4. 具备...
computer00 2013-06-04 09:26
[招聘]Android应用开发工程师
任职要求: 1. 具备扎实的面向对象编程思想和JAVA编程基础; 2. 熟悉Eclipse+ADT开发环境,熟练掌握Android基本类库; 3. 熟悉网络应用和多媒体应用开发; ...
computer00 2012-09-26 13:15
圈圈的新浪官方围脖
http://weibo.com/computer00  ...
computer00 2012-09-26 13:12
欢迎大家去收听圈圈弹的曲子
http://www.tudou.com/home/_105209016  ...
computer00 2009-06-29 15:07
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)下载地址1:下载地址2: 勘误.pdf...
computer00 2009-06-25 11:23
一块磐正845GE主板PS2接口的修复
圈圈有一部台式机,某天开机时,发现键盘用不了了,停留在输入BIOS密码那里。主机自检通过,但是蜂鸣器却发出很微弱的、连续的声音,同时键盘的三个LED也没有出现象往常一样的闪烁一下。圈圈以为多日未用,积...
EE直播间
更多
我要评论
18
11
关闭 站长推荐上一条 /1 下一条