目前发布的STM32_USB-FS-Device_Lib中有一个USB虚拟串口的例程,这个例程演示了把STM32配置为一个USB虚拟串口设备,STM32从它的USART接口接收数据并通过USB传送到上位机,反之STM32也从USB接收上位机送来的数据并从USART接口发送出去。
在从USART接口接收数据再向USB端口发送数据的这个方向上,例程采取的策略是:在每次从USART接口收到一个字节后,就做成一个USB数据包并发送出去。这种方法的好处是程序简单明了,但如果USART端出现连续的数据流时,容易造成数据丢失的问题。
下面的附件是经过改进的例程,解决了上传时数据丢失的问题:
xuli8469498 2016-4-8 09:29
1483344059_893287593 2015-4-13 10:19
410855397_258151106 2015-3-4 13:42
529539523_249741475 2014-12-16 14:11
lijiaxb_813277942 2013-8-15 21:02
weson1010_580426916 2013-8-8 17:06
liu-2001-1_990757213 2013-7-5 10:03
正在做usb转串口,学习下
allankliu_379990443 2013-3-2 10:22
allankliu_379990443 2013-2-28 13:42
已经是非常成熟的芯片了。问个和芯片关系不大的问题。
之前我使用串口的时候,采用的STX/ETX协议,即二进制协议:
STX+TYPE+STATUS+LEN+CRC+ETX。
主要是比ASCII协议效率高,可以校验错误。也可以知道封包起始(STX)和结束(ETX)。
不知道在VCP工程中,在USB的IN/OUT中是否也有必要加入STX/ETX?还是直接以64B为一个包进行通讯?
allankliu_379990443 2013-2-28 13:21
余额支付
微信扫码支付
给作者打赏,鼓励TA抓紧创作!
请选择支付金额
请选择支付方式
0人赞赏(共赞赏¥)