先说一下调试环境:PC机(串口助手)+MDK5+STM32F207ZET6+USB_FS
这两天调USB的VCP功能的时候遇到一个现象:
如果PC机不打开串口去接收VCP发来的数据,那么板子的程序就会卡在VCP_DataTx这个函数里。什么时候PC机打开串口,什么时候板子的程序就会继续运行。VCP_DataTx这个函数只做一件事,就是把要发送给PC的数据放到APP_Rx_Buffer这个数组中,我个人的理解是VCP库函数会自己把数组里的数据通过USB发送给PC。
尽管这个现象可以通过加开关标志的方式暂时性解决,但是上位机开关串口的行为对于我的板子来说是不可控(或者说不可知)的。存在这个问题的话,后续开发功能的时候会有所掣肘。
不知道有没有什么好办法可以解决?或者说这就是USB从机模式不可避免的情况?
|