关于USB VCP,讨论一个不知道算不算BUG的问题

2019-07-20 16:25发布

本帖最后由 特朗姆斯 于 2017-3-7 17:24 编辑

先说一下调试环境:PC机(串口助手)+MDK4.7+STM32F407ZGT6(探索者开发板)+USB_FS

这两天调USB的VCP功能的时候遇到一个现象:
      如果PC机不打开串口去接收VCP发来的数据,那么板子的程序就会卡在VCP_DataTx这个函数里。什么时候PC机打开串口,什么时候板子的程序就会继续运行。VCP_DataTx这个函数只做一件事,就是把要发送给PC的数据放到APP_Rx_Buffer这个数组中,我个人的理解是VCP库函数会自己把数组里的数据通过USB发送给PC。

尽管这个现象可以通过加开关标志的方式暂时性解决,但是上位机开关串口的行为对于我的板子来说是不可控(或者说不可知)的。存在这个问题的话,后续开发功能的时候会有所掣肘。

不知道有没有什么好办法可以解决?或者说这就是USB从机模式不可避免的情况?



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。