程序不断进入USBD_OTG_ISR_Handler中断下面的 DCD_HandleOutEP_ISR(pdev); 中,不知什么原因。 此问题偶然出现,同样的数据我发送几十次出现一次死机现象。进入中断后 断点中断数值ep_intr = USB_OTG_ReadDevAllOutEp_itr(pdev);ep_intr=1。但doepint.d32 = USB_OTG_ReadDevOutEP_itr(pdev, epnum);却为0;我发现这个端点中断v = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[epnum]->DOEPINT);数值为0x00000040,但被MSK掉了 v &= USB_OTG_READ_REG32(&pdev->regs.DREGS->DOEPMSK); 不知道问题出在什么地方,我看到一些前几年的帖子有提到类似问题,但基本都没人提出解决方法。也有发送数据遇到类似问题的可以清除缓冲解决,但我是接收数据。清除缓冲的话,接收的数据错乱了。请有遇到过该问题的,请帮帮忙给出答案或留下联系方式,愿酬谢。 |