【MCU方案】+cc5240蓝牙键鼠

[复制链接]
1740|9
 楼主| sharknarduo 发表于 2015-6-4 19:01 | 显示全部楼层 |阅读模式
第一部分为模块(从机端);主要是模块连接并发送数据到 USB Dongle。
第二部分为 USB Dongle( PC)端;主要是 HID 设备的实现及根据接收到模块
的数据告诉 PC 对键盘或鼠标进行操作。
USB-HID 介绍:
HID 是 Human Interface Device 的缩写,由其名称可以了解 HID 设备是直
接与人交互的设备,例如键盘、鼠标与游戏杆等。
交换的数据存储在称为报表(report)的结构内,设备的固件必须支持 HID 报
表的格式。主机在控制与中断传输中传送与要求报表,来传送与接收数据。报
表的格式非常有弹性,可以处理任何类别的数据。
 楼主| sharknarduo 发表于 2015-6-4 19:03 | 显示全部楼层
实物图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| sharknarduo 发表于 2015-6-4 19:06 | 显示全部楼层
部分源码:
、1. buf[0] = buttons; // 鼠标左右键
2. buf[1] = 0; // X 轴偏移量
3. buf[2] = 0; // Y 轴偏移量
4. buf[3] = 0; // Wheel 滑轮变化量
5. buf[4] = 0; // AC Pan 不符合 HIDAdvRemoteDongle 注释掉
if ( events & START_DEVICE_EVT )
2. {
3. //5s 启动 XY 轴周期报告发送
4. osal_start_timerEx( hidEmuKbdTaskId, MOUSE_X_EVT, 5000 );
5. osal_start_timerEx( hidEmuKbdTaskId, MOUSE_Y_EVT, 5000 );
6.
7. return ( events ^ START_DEVICE_EVT );
8. }
1. if ( events & MOUSE_X_EVT ) //鼠标 X 轴周期检测事件
2. {
3. uint8 buf[2];
4. int x;
5. int8 mouse_y;
6.
7. //X
8. buf[0] = HalI2CReadReg(0x01);
9. buf[1] = HalI2CReadReg(0x02);
10. x=(buf[0]<<8)|buf[1];
11. x>>=4;
12. if(x>600)mouse_y = 10;
13. else if(x<-600)mouse_y = -10;
14. else mouse_y = 0;
15.
16. if(mouse_y!=0)hidEmuKbdSendMouseReport(Mousebutton,0,mouse_y);
17.
18. if(Mousetime)osal_start_timerEx( hidEmuKbdTaskId, MOUSE_X_EVT,
Mousetime );
19. return ( events ^ MOUSE_X_EVT );
20. }
JY-DX-JY 发表于 2015-6-4 19:29 | 显示全部楼层
顶一个。
21ic小喇叭 发表于 2015-6-5 15:19 | 显示全部楼层
前十名参与活动的赏金已发  :D
冰河w 发表于 2015-6-7 15:05 | 显示全部楼层
赞,这模块多钱呢
i1mcu 发表于 2015-6-7 20:58 | 显示全部楼层
有演示的视频吗?
尤彼卡 发表于 2015-6-12 20:48 | 显示全部楼层
感觉很强大的样子,传输距离有多远
豆腐块 发表于 2015-6-25 20:36 | 显示全部楼层
这和市场上的无线键鼠比较,有哪些优势
lwsn 发表于 2015-6-25 21:26 | 显示全部楼层
能分享电路原理图吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

416

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部