打印

STM32 USB手柄鼠标的问题

[复制链接]
3004|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
code|  楼主 | 2013-7-31 14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32 USB手柄鼠标的问题
我下载了ST的官方4.0 JoyStickMouse例子
把程序编译了,把程序下载到开发板上
可以实现USB鼠标左右上下移动的功能
上下左右移动都很顺畅
但是按键的功能就不能实现了
我查阅了很多资料,得到的结论是USB设备端要发送4个字节给电脑
Mouse_Buffer[0]的bit0是作为左键
Mouse_Buffer[0]的bit1是作为右键
因此我就添加了如下的语句
准确的说是左键右键的功能失灵
单按右键不出菜单
一起按了左键+右方向键=右键的功能出菜单
一起按了右键+左方向键=左键的功能
左右键一定要跟方向键搭配一起使用才有效果
但是也不是每次都可以
有时候可以,有时候不可以
请问是什么原因  谢谢!!!!!!!!!!!!!!!!!!
void Joystick_Send(uint8_t Keys)
{
  uint8_t Mouse_Buffer[4] = {0, 0, 0, 0};
  int8_t X = 0, Y = 0;
      switch (Keys)
  {
    case JOY_LEFT:X -= CURSOR_STEP;
                  break;

    case JOY_RIGHT:X += CURSOR_STEP;
                   break;

    case JOY_UP:Y -= CURSOR_STEP;
                break;

    case JOY_DOWN:Y += CURSOR_STEP;
                  break;

    case JOY_RIGHT_KIT:Mouse_Buffer[0]|=1;//左键 这个是我自己添加上去的
                       break;

    case JOY_LEFT_KIT:Mouse_Buffer[0]|=2;//右键 这个是我自己添加上去的
                     break;
              default:return;
  }
  /* prepare buffer to send */
  Mouse_Buffer[1] = X;
  Mouse_Buffer[2] = Y;
  
  /* Reset the control token to inform upper layer that a transfer is ongoing */
  PrevXferComplete = 0;
  
  /* Copy mouse position info in ENDP1 Tx Packet Memory Area*/
  USB_SIL_Write(EP1_IN, Mouse_Buffer, 4);
  
  /* Enable endpoint for transmission */
  SetEPTxValid(ENDP1);
}

沙发
code|  楼主 | 2013-7-31 14:12 | 只看该作者
STM32 USB手柄鼠标的问题 (草稿) [复制链接]   未结帖(30)

为什么我的帖子在草稿箱啊 !!!!

使用特权

评论回复
板凳
mybao| | 2013-7-31 15:04 | 只看该作者
JoyStickMouse
STM32 USB手柄鼠标的问题
帮你顶

使用特权

评论回复
地板
code|  楼主 | 2013-8-1 10:05 | 只看该作者
帮帮忙忙拉 谢谢!!!!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:"></a><img src="http://uc2.21ic.com/avatar.php?uid=319240&size=middle"></img><a href="

40

主题

150

帖子

1

粉丝