Cypress技术论坛
直播中

孔朱磊

7年用户 909经验值
私信 关注

CYUSB3065线程被锁住了的原因?如何解决?

我使用这个芯片,然后使用例程,创建了一个DMA通过USB3传递UVC视频数据(作为电脑的摄像头),功能已经实现,但是当设备连接到电脑,电脑枚举到设备,但是尚未选中设备做摄像头的时候,设备系统的线程都不在运行(看起来像被锁住了),包含系统提供的时钟接口(CyU3PtimerCreate或tx_timer_create)也不再回调函数,直到电脑选中设备,这些线程才会继续运行。
注意:设备没有连接到电脑,或者设备被电脑选中之后,设备的线程都是正常的
                                

回帖(1)

毛玲燕

2024-2-29 11:27:57
这种情况是因为CX3根据USB协议的要求进入了suspend状态。
参考一下部分代码:
/* Handle Suspend Event*/
  if (eventFlag   CX3_USB_SUSP_EVENT_FLAG)
  {
  /* Place CX3 in Low Power Suspend mode, with USB bus activity as the wakeup source. */
  CyU3PMipicsiSleep ();
  CyCx3_ImageSensor_Sleep ();
   
  status = CyU3PSysEnterSuspendMode (CY_U3P_SYS_USB_BUS_ACTVTY_WAKEUP_SRC, 0,  wakeReason);
  CyU3PDebugPrint (4, "nrEnterSuspendMode Status = 0x%x, Wakeup reason = 0x%x", status, wakeReason);
   
  if (glMipiActive)
  {
  CyU3PMipicsiWakeup ();
  CyCx3_ImageSensor_Wakeup ();
  }
  }
          
举报

更多回帖

发帖
×
20
完善资料,
赚取积分