关于CH374U的HOST模式下 HID通信的问题

参考官方的demo HID+UDISK的的程序。 CH374U工作在HOST模式下, 插入自定义的HID的设备 已经枚举成功,并且可以正常的接收数据, 但是发送数据失败, 程序代码(具体见附件.c .h文件

icon_rar.gifch374.rar

), 下面的实际代码 在hid的 device设备上进行仿真 有进入OUT中断, 但是,收到的数据不对。

//发送HID的数据

UINT8 HID_Send_Data(uint8_t ch, UINT8 HubIndex,UINT8 **Edp,UINT8 *DataBuffer, UINT32 len  )

{

    UINT8 s;

    /* 设置待操作Hub口 */

    SelectHub(ch, HubIndex );

    if(len>((PEDP_INFO)*Edp)->MaxPacket)

    {

        len=((PEDP_INFO)*Edp)->MaxPacket;

    }

   // s = Issue_Token(ch, DEF_USB_PID_OUT, ((PEDP_INFO)*Edp)->EDPNum, ((PEDP_INFO)*Edp)->Tog, 0 );      //不重试

    s = Issue_Token(ch, DEF_USB_PID_OUT, (((PEDP_INFO)*Edp)->EDPNum)&0x0F, ((PEDP_INFO)*Edp)->Tog, 1000);

    if( s == DEF_USB_PID_ACK )

    {

      ((PEDP_INFO)*Edp)->Tog ^= 1;   //开启这后 接收就异常

      CH374_WriteBlockData(ch, RAM_HOST_RECV, DataBuffer, len);

      CH374_WriteRegData(ch, REG_USB_LENGTH,len);

      Delay_Ms(200);//等发送完成

    }

    else

        return s;

    return Success;

}


其中ch 是 (设备IC的cs的片选号 )

上述函数 是参考 get HID data 函数编写的,

使用上述函数 进行发送数据  设备端接收的字节是有时候接收的是64个字节  有时候是0字节 ,接收64字节的时候  接收的数据和发送数据不一样。


有大佬使用过CH374  HOST模式下 发送数据到设备端吗?


只有登录才能回复,可以选择微信账号登录