[Kinetis] 【FRDM-K64F使用进程】+ 定制多用途鼠标

[复制链接]
870|2
 楼主| Micachl 发表于 2015-11-29 20:07 | 显示全部楼层 |阅读模式
这是一款基于USB HID设备的鼠标功能限制及扩充,主要涉及HID设备的应用,同时结合其他的一些外设来完成专用/多用途的一个鼠标。分别会制作一个专用场合定制的鼠标,如功能限制性鼠标。还有可能根据应用将鼠标制作成具有部分键盘功能的结合体,初步设想是制作一个游戏鼠标二合一的设备,用于在汽车游戏当中的应用。





以上就是定制鼠标开发的基本硬件,其实红色框中标注的地方只是手一时有点痒,所以焊上去的,与这次开发无关。要在上图的FRDM平台进行开发,目前最为简单的当然是使用mbed,这样可以省好多的事情,但是对于我来说,使用mbed开发严重不习惯呀,因为是在线的。所以自诩为懒人的我又开始找快捷方式了,这不,最终还是找到了Freescale官方提供的SDK,好像都是1.2版本了,里面刚好也有K64的FRDM开发资源,好了,这里给大家分享一下,为了简洁,直接给大家百度云盘的下载链接。大家下载并安装到指定目录后就可以按下面的步骤进行USB鼠标的开发了………………

 楼主| Micachl 发表于 2015-11-29 20:08 | 显示全部楼层
一、 先跑通一个USB_HID鼠标的例程
    1. 在 您的安装目录\Freescale\KSDK_1.2.0\usb\usb_core\device\build\mdk\usbd_sdk_frdmk64f_ucosiii 下打开工程编译生成 libusbd_ucosiii.lib(必须进行的步骤,因为真正的USB_HID鼠标例程中是需要调用该lib文件的)
    2. 打开 您的安装目录\Freescale\KSDK_1.2.0\examples\frdmk64f\demo_apps\usb\device\hid\hid_mouse\ucosiii\mdk 下的工程文件编译再下载到目标板,然后使用USB线连接PC与目标板的K64 USB,您就会发现电脑鼠标在画矩形了,到这里,例程的测试阶段就完成了。
二、 加入加速度传感器控制之前
  1. static void move_mouse(void)
  2. {
  3.     static int8_t x = 0, y = 0;
  4.     enum { RIGHT, DOWN, LEFT, UP };
  5.     static uint8_t dir = (uint8_t) RIGHT;

  6.     switch(dir)
  7.     {
  8.     case RIGHT:
  9.         g_mouse.rpt_buf[1] = 2;
  10.         g_mouse.rpt_buf[2] = 0;
  11.         x++;
  12.         if (x > 100)
  13.         {
  14.             dir++;
  15.         }
  16.         break;
  17.     case DOWN:
  18.         g_mouse.rpt_buf[1] = 0;
  19.         g_mouse.rpt_buf[2] = 2;
  20.         y++;
  21.         if (y > 100)
  22.         {
  23.             dir++;
  24.         }
  25.         break;
  26.     case LEFT:
  27.         g_mouse.rpt_buf[1] = (uint8_t)(-2);
  28.         g_mouse.rpt_buf[2] = 0;
  29.         x--;
  30.         if (x < 0)
  31.         {
  32.             dir++;
  33.         }
  34.         break;
  35.     case UP:
  36.         g_mouse.rpt_buf[1] = 0;
  37.         g_mouse.rpt_buf[2] = (uint8_t)(-2);
  38.         y--;
  39.         if (y < 0)
  40.         {
  41.             dir = RIGHT;
  42.         }
  43.         break;
  44.     }
  45.     (void) USB_Class_HID_Send_Data(g_mouse.app_handle, HID_ENDPOINT,
  46.         g_mouse.rpt_buf, MOUSE_BUFF_SIZE);
  47. }

找到鼠标移动相关的函数,搞清楚你要通过加速度传感器来控制的目标参数
 楼主| Micachl 发表于 2015-11-29 20:09 | 显示全部楼层
我们可以参照上面的代码编写另一个控制鼠标的函数,当然这个函数是要你手动屏蔽掉的。添加完了加速度控制再用加速度传感器的X,Y值来控制鼠标移动


hex文件下载:

dev_hid_mouse_ucosiii.zip

37.37 KB, 下载次数: 0

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

本版积分规则

43

主题

300

帖子

1

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