在main主程序中使用如下函数对端点进行写操作 "USB_SIL_Write(EP2_IN,(uint8_t*)RxMessage.Data,8)"
函数返回后直接进入USB中断服务程序不能跳出。中断服务程序中似乎陷入了如下的死循环中。
#ifdef INTR_INEPINTR /* IN Endpoint interrupt*/
if (gintr_status.b.inepint)
{
retval |= OTGD_FS_Handle_InEP_ISR();<---------
}
#endif
如果PC及程序对端点进行读操作,则中断可以返回。
问题:按照我的理解USB_SIL_Write函数仅写入发送FIFO,中断程序中的发送缓冲区空条件测试是否有误? |