小弟最经在研究OTG的库,用的是一个F4的开发板,官方的demon中实现的是一个HID的鼠标。不过只显示了数据发送给PC机,小弟想在实现PC机给单片机,可是不知道应该如何相应的修改,再增加一个端口枚举成功后,用PC机给发送out数据,用BUSHOUND可以查看到数据发送了,但是我硬仿真的时候中断只是这边有 if (gintr_status.b.rxstsqlvl)
{
#ifdef debuge
printf("rxstsqlvl\n\r");
#endif
retval |= DCD_HandleRxStatusQueueLevel_ISR(pdev);
}
反应。而我感觉要是有OUT数据应该下面有反应才是,可是却没有。
if (gintr_status.b.outepintr)
{
#ifdef debuge
printf("outepintr\n\r");
#endif
printf("outepintr\n\r");
retval |= DCD_HandleOutEP_ISR(pdev);
}
这两段代码都是中断函数void OTG_FS_IRQHandler(void)
{
USBD_OTG_ISR_Handler (&USB_OTG_dev);
}里面的。
已经苦扰我好几周了,实现不知道怎么写了。难道除了端口0的中断在这边,其他的不在这段代码吗? |