金牌会员
 
- 积分
- 1149
- 金钱
- 1149
- 注册时间
- 2015-11-13
- 在线时间
- 267 小时
|
5金钱
本帖最后由 特朗姆斯 于 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从机模式不可避免的情况?
|
|