目前发布的STM32_USB-FS-Device_Lib中有一个USB虚拟串口的例程,这个例程演示了把STM32配置为一个USB虚拟串口设备,STM32从它的USART接口接收数据并通过USB传送到上位机,反之STM32也从USB接收上位机送来的数据并从USART接口发送出去。
在从USART接口接收数据再向USB端口发送数据的这个方向上,例程采取的策略是:在每次从USART接口收到一个字节后,就做成一个USB数据包并发送出去。这种方法的好处是程序简单明了,但如果USART端出现连续的数据流时,容易造成数据丢失的问题。
下面的附件是经过改进的例程,解决了上传时数据丢失的问题:
用户3830892 2016-4-8 09:29
用户1834442 2015-4-13 10:19
用户1655933 2015-3-4 13:42
用户1665792 2014-12-16 14:11
用户442613 2013-8-15 21:02
用户1468552 2013-8-8 17:06
用户1636286 2013-7-5 10:03
正在做usb转串口,学习下
用户1028102 2013-3-2 10:22
用户1028102 2013-2-28 13:42
已经是非常成熟的芯片了。问个和芯片关系不大的问题。
之前我使用串口的时候,采用的STX/ETX协议,即二进制协议:
STX+TYPE+STATUS+LEN+CRC+ETX。
主要是比ASCII协议效率高,可以校验错误。也可以知道封包起始(STX)和结束(ETX)。
不知道在VCP工程中,在USB的IN/OUT中是否也有必要加入STX/ETX?还是直接以64B为一个包进行通讯?
用户1028102 2013-2-28 13:21