xujing45 发表于 2019-1-26 10:16:42

stm32的usb虚拟串口

如果单片机通过虚拟串口往电脑发送数据,电脑这边不接收那数据还能发出去吗?单片机会卡在哪里,还是说单片机只负责把数据发送出去,电脑端接不接收无所谓。

qiangtech 发表于 2019-1-26 10:43:54

单片机不会卡住,因为它不需要接收端的应答。它只管发,接收端接收情况它不考虑的。

xujing45 发表于 2019-1-26 10:58:12

qiangtech 发表于 2019-1-26 10:43
单片机不会卡住,因为它不需要接收端的应答。它只管发,接收端接收情况它不考虑的。 ...

多谢解答

tgw860910 发表于 2019-1-31 09:57:02

其实单片机在发送数据的时候会有检测是否发送成功的,没发送完成的时候,如果你再次调用发送函数,返回值是busy

Angel_YY 发表于 2019-1-31 10:35:27

CDC device端若无限向PC端发送数据,若PC端没有及时读走数据,导致PC端接收缓存爆满,此时PC端回复NACK,此时会导致发送返回BUSY.此时会不会卡住,还要看自己实现的代码,如果只是发送,没有其他保证对方完整接收机制,这里是不会卡住的。

toofree 发表于 2019-1-31 10:35:44

这个有歧义呀,你说的往电脑上发东西,是指的USB端,还是串口端?
串口端的话,单片机不受影响;USB端的话,电脑的USB始终都是主动的,不论是收还是发,或是中断,都是电脑端负责仲裁,产生读写时序的。
单片机里面有USB的协议栈,有状态机循环,状态机是不会死的。

jy04706985 发表于 2019-1-31 11:02:05

发送USB缓冲区满了,就不会继续写入了,数据会丢弃的~~~~~
页: [1]
查看完整版本: stm32的usb虚拟串口