stm32的usb虚拟串口
如果单片机通过虚拟串口往电脑发送数据,电脑这边不接收那数据还能发出去吗?单片机会卡在哪里,还是说单片机只负责把数据发送出去,电脑端接不接收无所谓。单片机不会卡住,因为它不需要接收端的应答。它只管发,接收端接收情况它不考虑的。 qiangtech 发表于 2019-1-26 10:43
单片机不会卡住,因为它不需要接收端的应答。它只管发,接收端接收情况它不考虑的。 ...
多谢解答 其实单片机在发送数据的时候会有检测是否发送成功的,没发送完成的时候,如果你再次调用发送函数,返回值是busy CDC device端若无限向PC端发送数据,若PC端没有及时读走数据,导致PC端接收缓存爆满,此时PC端回复NACK,此时会导致发送返回BUSY.此时会不会卡住,还要看自己实现的代码,如果只是发送,没有其他保证对方完整接收机制,这里是不会卡住的。
这个有歧义呀,你说的往电脑上发东西,是指的USB端,还是串口端?
串口端的话,单片机不受影响;USB端的话,电脑的USB始终都是主动的,不论是收还是发,或是中断,都是电脑端负责仲裁,产生读写时序的。
单片机里面有USB的协议栈,有状态机循环,状态机是不会死的。 发送USB缓冲区满了,就不会继续写入了,数据会丢弃的~~~~~
页:
[1]