OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 74480|回复: 118

STM32 usb-hid 鼠标+键盘 双接口 复合设备

  [复制链接]

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2013-3-1 13:51:42 | 显示全部楼层 |阅读模式
网上相关资料较少,我发一份我的 STM32 usb-hid 鼠标+键盘 双接口 复合设备

我调试鼠标 和 键盘后,应该都没问题

先上图




鼠标移动数据








直接使用Mini板的STM32就可以了





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

466

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2164
金钱
2164
注册时间
2013-1-11
在线时间
510 小时
发表于 2016-10-17 22:47:08 | 显示全部楼层
帮助下,未能编译成功的同学,主要是头文件的问题,现在已经改为MDK5可以使用了,完整的包,下载的同学,点个赞吧!

STM32_USB_复合设备RBT6.zip

110.02 KB, 下载次数: 3686

知识是你最好的财富
回复 支持 16 反对 0

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-27 09:52:42 | 显示全部楼层
又来学习了,程序中使用的是相对坐标来处理鼠标的移动的,现在需要改为绝对坐标来处理。

遇到问题了,改成绝对坐标好板子开始挑电脑了。有的电脑能对鼠标发来的数据产生反应,有的电脑不能。

有没有人遇到过这种现象啊??
深蓝嵌入式工作室
回复 支持 1 反对 0

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-1 15:13:00 | 显示全部楼层
在发一点STM32 USB模块的基础资料



STM32F10xxx USB开发工具包.pdf

978.66 KB, 下载次数: 7234

STM32_USB模块讲解.pdf

345.42 KB, 下载次数: 6853

回复 支持 1 反对 0

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-1 13:54:38 | 显示全部楼层
有什么疑问,请联系~~
大家多讨论交流~

不带商业目的,仅限于相互学习

STM32_USB_复合设备.zip

75.84 KB, 下载次数: 8460

回复 支持 1 反对 0

使用道具 举报

20

主题

111

帖子

2

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2011-10-18
在线时间
9 小时
发表于 2013-3-1 14:38:13 | 显示全部楼层
你的这个程序不像你开始发给我程序,我看了你的程序,配置和报告是没有问题的,如果只用两个端点问题不大。
?成功只是最后一小步的坚持!
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-1 14:41:30 | 显示全部楼层
回复【3楼】suqingxiao:
---------------------------------
不错,以前的那个复合设备我是去年写的,已经忘了到底怎么写的了,只记得写错了。

昨晚就是在重新写这个程序,昨晚有些小细节还是有问题,今早改过来了。
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2013-3-1 15:04:55 | 显示全部楼层
向楼主学习
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-1 15:11:10 | 显示全部楼层
回复【5楼】565956807@qq.com:
---------------------------------
互相学习~~
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2013-3-1 15:16:56 | 显示全部楼层
占位
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-2 09:03:10 | 显示全部楼层
没人顶啊~~~
回复 支持 反对

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2012-11-20
在线时间
0 小时
发表于 2013-3-2 09:05:39 | 显示全部楼层
我来顶,不错的资料。。呵呵~
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-2 10:00:54 | 显示全部楼层
回复【10楼】formatu:
---------------------------------
呵呵,谢谢~~
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-2 10:34:09 | 显示全部楼层
这个是具体实现方法(在正确添入usb库后)

STM32 USB-HID复合设备实现方法.wps

104.5 KB, 下载次数: 5529

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-2 11:40:41 | 显示全部楼层
支持开源共享.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-2 12:20:48 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
呵呵,嗯~
回复 支持 反对

使用道具 举报

2

主题

394

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2012-5-8
在线时间
314 小时
发表于 2013-4-19 16:02:23 | 显示全部楼层
已经顶你!好楼主!
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-4-19 16:36:25 | 显示全部楼层
楼主对USB也有研究啊,前途不可限量
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-4-19 17:34:30 | 显示全部楼层
回复【16楼】tian123chi:
---------------------------------
呵呵,研究谈不上,学习而已~~
希望您支持成都信息工程学院的比赛,有什么意见和想法都可以提O(∩_∩)O~
回复 支持 反对

使用道具 举报

5

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2012-8-10
在线时间
40 小时
发表于 2013-5-3 21:56:43 | 显示全部楼层
谢谢共享!
回复 支持 反对

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-5-18 16:46:09 | 显示全部楼层
;来顶一下楼主不错
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-6-10
在线时间
4 小时
发表于 2013-6-10 09:21:00 | 显示全部楼层
谢谢分享,战舰板的好用吗,能加上usb游戏摇杆吗
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-6-11 17:53:48 | 显示全部楼层
回复【20楼】eaglelab:
---------------------------------
用摇杆的报告描述符就可以~~
但是我没弄过~~
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-13 18:33:31 | 显示全部楼层
参考你的程序,计算机发现了鼠标键盘。测试键盘有数据输出,测试鼠标时没有反应哦,,

u8 Buffer[8] = {0, 0, 0, 0, 0, 0, 0, 0};

/******* 测试键盘 一直发字母‘y’ ****************/
Buffer[0] = 0;
Buffer[2] = 0x1c;
UserToPMABufferCopy(Buffer, GetEPTxAddr(ENDP1), 8);
SetEPTxValid(ENDP1);
/*****************************************/


/********* 测试鼠标 滑轮向上滚动 ************/
Buffer[0] = 1;
UserToPMABufferCopy(Buffer, GetEPTxAddr(ENDP2), 5);
SetEPTxValid(ENDP2);
/************ ****************************/


请大家指点下,我哪里出问题了。








深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-14 10:20:04 | 显示全部楼层
请高手指点一下啊。
复合设备的键盘能用鼠标不能用,
深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-6-14 11:13:00 | 显示全部楼层
回复【23楼】bluesky_kun:
---------------------------------
 不是吧,应该可以的啊,你用bushound监听一下usb数据呢
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-14 12:02:53 | 显示全部楼层
我的电脑已经识别了这个复合设备,用bushound监听usb鼠标没有数据
深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-6-14 14:23:25 | 显示全部楼层
回复【25楼】bluesky_kun:
---------------------------------
一定要等到usb初始化完成再进行数据发送,一定要等到端点空闲的时候,再进行数据发送哈
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-14 16:25:53 | 显示全部楼层
你有完整的工程么?
我是参考的你的,你的工程我编译有错误。
能不能上传一个可以直接使用的参考工程,谢谢
深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-6-14 16:35:30 | 显示全部楼层
回复【27楼】bluesky_kun:
---------------------------------
我的工程就是完整的工程....我可以编译....

你贴出来看看是什么错误,我估计可能是头文件里面有问题。
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-6-14 16:35:42 | 显示全部楼层
回复【27楼】bluesky_kun:
---------------------------------
我上传的工程就是完整的工程....我可以编译....

你贴出来看看是什么错误,我估计可能是头文件里面有问题。
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-14 17:01:30 | 显示全部楼层
对,找不到头文件

我的是keil 4

深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-14 17:02:04 | 显示全部楼层
再发一遍

Build target 'Target 1'
compiling test.c...
test.c(1): error:  #5: cannot open source input file "stm32f10x_lib.h": No such file or directory
compiling delay.c...
..\SYSTEM\delay\delay.c(1): error:  #5: cannot open source input file "stm32f10x_lib.h": No such file or directory
compiling sys.c...
..\SYSTEM\sys\sys.c(1): error:  #5: cannot open source input file "stm32f10x_lib.h": No such file or directory
compiling usart.c...
..\SYSTEM\sys\sys.h(3): error:  #5: cannot open source input file "stm32f10x_lib.h": No such file or directory
compiling hw_config.c...
..\SYSTEM\sys\sys.h(3): error:  #5: cannot open source input file "stm32f10x_lib.h": No such file or directory
compiling stm32f10x_it.c...
..\USB\CONFIG\stm32f10x_it.c(19): error:  #5: cannot open source input file "stm32f10x_it.h": No such file or directory
compiling usb_prop.c...
compiling usb_pwr.c...
..\USB\CONFIG\usb_pwr.c(17): error:  #5: cannot open source input file "stm32f10x_lib.h": No such file or directory
Target not created
深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-6-14 17:20:30 | 显示全部楼层
回复【31楼】bluesky_kun:
---------------------------------
没有遇到过你这种情况....
找不到stm32f10x_lib.h.....

你一般都包含的什么头文件哦
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-14 17:21:21 | 显示全部楼层
我是直接用的你的工程,
我一般都是用库的,呵呵
深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-14 17:23:21 | 显示全部楼层

这是工程里的文件,没找到和固件库相关的,你是直接操作的寄存器吧?
深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-6-14 18:07:31 | 显示全部楼层
回复【34楼】bluesky_kun:
---------------------------------
嗯,我是直接寄存器的
回复 支持 反对

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-6-16 19:10:20 | 显示全部楼层
LZ,测试了下,鼠标没效果,求解。
一直努力就很好。
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-6-16 20:04:15 | 显示全部楼层
回复【36楼】qq942266575:
---------------------------------
不是吧,应该可以的,你看下bushound里面的数据呐。
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-18 10:28:37 | 显示全部楼层
看也有人说鼠标不能用哦。求解
深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2013-6-25 16:48:29 | 显示全部楼层
我用的keil是4.7的,编译时出现很多错误,都是些头文件未找到的错误。修改很简单。

在主函数中一开始没用使用中断的标志位导致我的键盘能用鼠标不能用,原因是通讯未完成就再次发送数据造成的。

程序是能用的,
深蓝嵌入式工作室
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2013-6-2
在线时间
1 小时
发表于 2013-7-18 10:09:20 | 显示全部楼层
我只改了主程序
while(1) {
  delay_ms(1000);
  if(EP1BUSY == 0) {
      EP1BUSY = 1;
      Joystick_Send(0,0x05);
  }
}
键盘方面确实是一直发同一个"字符",加了延时速度不变。估计是中断一直在触发或者没有发送结束符之类的。还有一个比较严重的问题,就是识别不稳定。不知道怎么解决这个问题
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-4-17
在线时间
21 小时
发表于 2013-8-26 13:57:44 | 显示全部楼层
回复【楼主位】lsj9383:
---------------------------------
你好,我想问下
例如:键盘发送一帧数据   02 00 0x04 0x05 00 00 00 00 
表示同时按下了Left Shift + ‘a’+‘b’三个键 
照理说应该发送的是大写的AB
但是根据你的历程确实小写的ab ,是哪里还有问题吗?
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-1-24
在线时间
0 小时
发表于 2014-1-24 10:01:00 | 显示全部楼层
谁有模拟鼠标键盘的例子程序,是否有条件给我发一份!QQ342914447.
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2014-1-6
在线时间
13 小时
发表于 2014-2-17 17:34:10 | 显示全部楼层
感谢楼主     小弟学习    最近做的东西跟这个有点相似
最热情的问候 With My Warmest Regards
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2014-1-6
在线时间
13 小时
发表于 2014-2-17 20:00:22 | 显示全部楼层
楼主  你好   你的这个程序的库好像不是V3.5的?是V2的吗?
最热情的问候 With My Warmest Regards
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
发表于 2014-2-22 00:11:21 | 显示全部楼层
感谢楼主
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2012-8-16
在线时间
13 小时
发表于 2014-7-21 15:44:51 | 显示全部楼层
好东西,谢谢分享!
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

6

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2012-7-28
在线时间
0 小时
发表于 2014-8-2 21:13:10 | 显示全部楼层
不得不顶!!!
回复 支持 反对

使用道具 举报

0

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2014-4-29
在线时间
18 小时
发表于 2014-8-7 19:48:18 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2014-10-21
在线时间
7 小时
发表于 2014-10-21 14:43:39 | 显示全部楼层
 mark
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 12:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表