CH32V208_USB实现中EP Buffer更新

if(USBFS_DevEnumStatus)

{

    keyReport1[2] = 0x04;

    USBFS_Endp_DataUp(DEF_UEP1, keyReport1, sizeof(keyReport1), DEF_UEP_CPY_LOAD);

    Delay_Ms(10);

    keyReport1[2] = 0x00;

    USBFS_Endp_DataUp(DEF_UEP1, keyReport1, sizeof(keyReport1), DEF_UEP_CPY_LOAD);

    Delay_Ms(1000);

}


代码本身非常简单,也可以正常运行


但我不理解的是,如果不在外面套一层if(USBFS_DevEnumStatus)的话似乎就无法正确实现,电脑不会有按键的反应

找到USBHD_IRQHandler中关于这个flag(?)的代码,看上去是在完成各种descriptor后设置fs配置时写为0x01

那我为什么还需要在传数据前进行一次判断?即便我直接放在while(1)里面循环也不行?

您好,数据传输阶段需在设备枚举成功之后才可实现,请确保在数据传输之前设备已经枚举成功。


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