调试环境:IAR,rt1064EVB,usb例程dev_cdc_vcom_bm
原例程可正常调试,数据收发正常,echo back功能正常。如果把APPTask中的USB_DeviceCdcAcmSend函数注释掉,即只收不发,第二次无法接收,程序进不了USB_OTG1_IRQHandler中断。
请问是什么原因?难道收到后必须发送才能继续接收?
Solved! Go to Solution.
Hi SSFG1992,
楼主你好!
你这个问题和我之前在与非网上答得一样:
https://www.nxpic.org.cn/module/forum/thread-621709-1-1.html
你参考下。
-------------------
今天我分析了下,发现在USB_DeviceCdcVcomCallback event=kUSB_DeviceCdcEventSendResponse的时候,有个:
/* User: add your own code for send complete event */
/* Schedule buffer for next receive event */
error = USB_DeviceCdcAcmRecv(handle, USB_CDC_VCOM_BULK_OUT_ENDPOINT, s_currRecvBuf,
g_UsbDeviceCdcVcomDicEndpoints[0].maxPacketSize);
用于准备下次接收的代码。
所以你可以把你APPTask里面,接收到数据之后,加一个准备下次接收的代码,如下:
Wish it helps you!
Best Regards,
Kerry
Hi SSFG1992,
楼主你好!
你这个问题和我之前在与非网上答得一样:
https://www.nxpic.org.cn/module/forum/thread-621709-1-1.html
你参考下。
-------------------
今天我分析了下,发现在USB_DeviceCdcVcomCallback event=kUSB_DeviceCdcEventSendResponse的时候,有个:
/* User: add your own code for send complete event */
/* Schedule buffer for next receive event */
error = USB_DeviceCdcAcmRecv(handle, USB_CDC_VCOM_BULK_OUT_ENDPOINT, s_currRecvBuf,
g_UsbDeviceCdcVcomDicEndpoints[0].maxPacketSize);
用于准备下次接收的代码。
所以你可以把你APPTask里面,接收到数据之后,加一个准备下次接收的代码,如下:
Wish it helps you!
Best Regards,
Kerry