wanggang508
驱动小牛
驱动小牛
  • 注册日期2003-08-24
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1518回复:1

D12 固件程序中定义的缓冲区的问题?

楼主#
更多 发布于:2004-06-17 20:52
我正在学习D12的固件程序,有点问题不太明白,向大家请教一下:程序中定义的CONTROL_XFER结构体中的
unsigned char dataBuffer[MAX_CONTROLDATA_SIZE],
为什么把MAX_CONTROLDATA_SIZE定义为8,我看了看设备描述符中端点0的最大包的大小为16呀?并且这个值在控制输出中断函数
void EP0_RxDone_Isr(void)中使用到:
if(ControlData.DeviceRequest.wLength > MAX_CONTROLDATA_SIZE)
{  
    mudk12Flags.bits.bControl_State = USB_IDLE;
    USBCHIP_SetEndpointStatus(0, 1);
    USBCHIP_SetEndpointStatus(1, 1);      
}        注:  CONTROL_XFER    ControlData;
为什么 ControlData.DeviceRequest.wLength的值不能大于8呀?
多多交流,少走弯路!!!
jjg0020
驱动牛犊
驱动牛犊
  • 注册日期2006-06-22
  • 最后登录2007-09-05
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望8点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-14 12:13
USB标准设备请求中的 USB设备请求格式的数据包有8个字节组成

              设备请求类型                    1 字节
                     设备请求                        1 字节
              值                              2 字节
              索引                            2 字节
              长度                            2 字节
游客

返回顶部