打印

SET_REPORT数据存放问题

[复制链接]
1565|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shebeique|  楼主 | 2012-7-12 11:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天调试了一下STM32端点零输出,在原JoyStick例程中的Joystick_Data_Setup函数中加入了处理SET_REPOTR的判断和相应的处理函数,具体的函数参照香主博客。现在有两个疑问:
1.关于pInformation->Ctrl_Info.Usb_wLength = (*CopyRoutine)(0);
   看到博文说,此处要改上如上的样子,改成如此后,还需要强制类型转换,对于此,我没做处理,即按照原例程中(*CopyRoutine)(0)写法,然后测试通过。问:此处修改是否必要?强制转换是如*(*CopyRoutine)(0)一般吗?直接加u16会有警告;
2.用BUSHOUND抓取数据,SET_REPORT后会有DATA OUT,一个字节的,可以用来控制LED灯。我在函数中处理如下:
void Joystick_Status_In(void)
{
if (Request == SET_REPORT)
  {
if(SetReportBuffer[8]&0x01)
  {
    LED_Num=1;
  }
else
  {
   LED_Num=0;
  }
if(SetReportBuffer[8]&0x02)
  {
    LED_Caps=1;
  }
else
  {
   LED_Caps=0;
  }

    Request = 0;
  }
}
此处,我不太明确接收的数据存放在什么地方,是设定的SetReportBuffer吗?如下测试发现,只要按下大写或者数据锁定键,都会造成外部变量LED_Num变化,不明所以。问:SET_REPORT后的DATA OUT 存放在哪?要用它做判定。

这部分内容现学,很多不太清楚,请各位帮忙解释一下,不胜感激!
沙发
shebeique|  楼主 | 2012-7-12 13:32 | 只看该作者
求解

使用特权

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

本版积分规则

0

主题

10

帖子

1

粉丝