上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。

Posted 机械狂魔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。相关的知识,希望对你有一定的参考价值。

用libUSB来实现自己的驱动+下位机理论速度。=1M字节每秒。
达到极限速度
 
WINDOWS已经自带虚拟串口驱动,只不过还需要一个Inf文件
方法1:直接下载一个串口inf,来修改文件。
 

方法2:用libUSB来实现自己的驱动。。。及应用。用那个工具安装成自己定义的设备名字,应用程序就根据PID,VID来找到我们的设备,进行一系列读写。


 
 
下位机:
1,配置描述符的编写,见工程代码注释。主要是CDC类接口用端点2,数据接口用端点1和端点3
 
 
2,Get_line_coding请求,获取串口属性。波特率、停止位、校验类型、数据位数。避免移植的大小端、对齐、填充模式等问题。不用结构体,使用数组。这是设置真实串口波特率,而虚拟串口想多快就有多快
usb_prop.c
LINE_CODING linecoding =
  {
    115200, /* baud rate*/
    0x00,   /* stop bits-1*/
    0x00,   /* parity - none*/
    0x08    /* no. of bits 8*/
  };
 
3,Set_line_coding,设置串口属性
 
4,处理串口数据
Usb_endp.c
EP1_IN_Callback()   设备向主机输入数据,
EP3_OUT_Callback()  主机向设备输出数据

以上是关于上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。的主要内容,如果未能解决你的问题,请参考以下文章

stm32发送数据给上位机用串口调试助手接收为什么只接收到第一个字节数据?

STM32 USB使用记录:使用CDC类虚拟串口(VCP)进行通讯

怎样用vc编写上位机软件

c#上位机开发

最近想学个上位机软件,上位机软件一般用哪个,哪个好学?还有VB,VC,C#的优点和缺点。希望做上位机软件的前

CH559单片机 USB CDC虚拟串口收发回环测试+调试信息输出改进版