上位机用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()  主机向设备输出数据

时间: 2024-12-26 16:07:31

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

2018最新mfc作为上位机接收硬件端USB或串口数据显示成图片 解决串口接收数据丢字节丢包问题

本文用的是VS2013MFC写串口数据接收: 第一步:首先建立一个MFC工程,成功后会跳出一个对话框,直接在对话框上点击右键->点击插入ACTIVAE控件->选择MicrosoftCommunications Control, version 6.0 成功后会显示一个电话的图标在对话框上,运行起来不会显示的 不用担心这个美观问题.如果没有这个插件的话,可能是版本太低  可以自己下载一个补上 第二步:大概的窗体搞好:   那个显示图片的大框是PICTURE控件变量 然后就要项目->类向导中

C#做一个简单的进行串口通信的上位机

C#做一个简单的进行串口通信的上位机 1.上位机与下位机 上位机相当于一个软件系统,可以用于接收数据.控制数据.即可以对接收到的数据直接发送操控命令来操作数据.上位机可以接收下位机的信号.下位机是一个控制器,是直接控制设备获取设备状况的计算机.上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备.下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机.上位机不可以单独使用,而下位机可以单独使用. 2.串口通信 串口相当于硬件类型的接口.比如无线传感节

上位机简单串口类,VC串口类

我是在一家做硬件的的公司里面做软件开发工程师的,我做的软件大多是是编写软件通过串口去控制硬件,所以串口编程对于我来说是很重要的.串口编程之前一直使用的是自己写的简单串口(只有发送,没有接收)类,或者上网下的CSerialPort类(个人觉得不好用啊,互锁变量一堆,代码一开始还让人看不懂,对于上位机使用不合适).对于我做的上位机软件,其实使用串口只是需要顺序发送,接收数据无误就行了,不需要考虑太多东西.所以最近有点空,就自己再写了一个串口类(希望可以简单使用的,没有太高的要求的). (1)界面 界

【安富莱专题教程第6期】SEGGER的J-Scope波形上位机软件,RTT模式波形上传速度可狂飙到500KB/S左右

说明:1.在实际项目中,很多时候,我们需要将传感器或者ADC的数值以波形的形式显示.通常的解决办法是用串口上位机,USB接口上位机或者MDK的逻辑分析仪功能,使用这三种方式都比较繁琐.本期专题为大家讲解的J-Scope波形软件简单易用.2.J-Scope波形显示软件主要有RTT和HSS两种工作方式.本期专题教程为大家讲解RTT模式的使用方法.RTT模式的波形显示速度非常快,而且随时随地都可以连接目标板,不影响目标板的正常功能,不需要额外资源.同时可以设置上升沿,下降沿或者双沿触发.3.大家买的D

VS2015编写的MFC上位机,波特率可调,可动态显示曲线,可显示三维

VS2015编写的MFC上位机,波特率可调,可动态显示曲线,可显示三维 2016年01月14日 11:40:28 博博有个大大大的Dream 阅读数:9375 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_17783559/article/details/50516228 近期做一个项目正好涉及MFC编写串口上位机,主要用于动态显示曲线和陀螺仪三维信息,想做飞思卡尔或者四旋翼的小伙伴可以借鉴一下,首先贴个结果图: 下面来简单讲解一下这个上

基于FPGA的测频系统+上位机

[1]本设计的要求: 利用FPGA实现频率计,要求2秒内测出外部频率,并且2秒更新一次值: 实现100MHz频率的测量: 测量结果通过串口921600bps发送给PC: 发送格式为:FFCB0176543210,其中FFCB01为帧头,76543210(即0x76543210)为频率值,数据在上位机中转换成十进制并用合适的单位(MHz.KHz.Hz)表示: 完善上位机. [2]现在就来说说我是如何实现上述条件的.对于第一个条件"2秒内测出频率并2秒更新一次",很明显这是连续.实时的测量

虚拟串口--杂记

虚拟串口被占用,软件可用串口有限COM1-COM4,如何释放和删除被占用的串口 A:可以通过删除注册表中的一个数值项来清除这些配置:在"运行"对话框中输入"regedit"进入注册表:然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号.比如1d,它的二进制:0001 1101,则从右往左数代表第1,3,4

C#上位机串口控制12864显示

实现的效果 上面是用Proteus仿真的,,对了如果自己想用proteus仿真需要安装下面这个软件 再看一下实物显示效果 先做上位机部分........... 为了程序一启动就把电脑上能用的串口号显示在下拉框中 private void Form1_Load(object sender, EventArgs e) { string[] ComName = SerialPort.GetPortNames();//把可用的串口号存入comname comboBoxCom.Items.AddRange

VC++编写简单串口上位机程序

转载: http://blog.sina.com.cn/s/articlelist_1809084904_0_1.html VC++编写简单串口上位机程序 串口通信,MCU跟PC通信经常用到的一种通信方式,做界面.写上位机程序的编程语言.编译环境等不少,VB.C#.LABVIEW等等,我会的语言很 少,C语言用得比较多,但是还没有找到如何用C语言来写串口通信上位机程序的资料,在图书管理找到了用VC++编写串口上位机的资料,参考书籍,用自己相 当蹩脚的C++写出了一个简单的串口上位机程序,分享一下