精华内容
下载资源
问答
  • 一个软件用两个串口
    千次阅读
    2021-11-12 22:45:15

    一.串口连接

    准备两个USB TO TTL和杜邦线若根,将两个USB TO TTL的RX,TX引脚交叉连接,并将两个USB接口接上一台笔记本电脑(模拟两台计算机之间的串口传输)。

    二.传输文件

    利用可以传输文件的串口调试助手(在这里我采用的是SSCOM V5.13.1),打开两个窗口,每个窗口打开一个串口(两个USB TO TTL连接产生的串口),这里可以看见串口COM4和COM5
    在这里插入图片描述
    设置相应的设置,波特率是115200,数据位8,停止位1,无校验位。,打开想要发送的文件,点击发送文件
    在这里插入图片描述
    在这里插入图片描述

    三.总结

    波特率和数据的传输速率有关系,但是波特率并不是数据传输速率,数据传输速率是比特率。比特率在数值上和波特率有这样的关系:

    I=S*log2N
    

    其中I为传信率,S为波特率,N为每个符号承载的信息量,而以比特为单位。波特率与比特率的关系也可换算成:比特率=波特率*单个调制状态对应的二进制位数。

    更多相关内容
  • 创建虚拟串口,并可将发往虚拟串口的数据往TCP/UDP转换并传输出去,也可以接收TCP/UDP数据往串口转发。
  • 介绍一种基于windows下的VS软件使用MFC框架开发一个软件工具的方法,实现两个串口之间互相转发数据的功能,该工具可以实现串口数据监听,支持两个不同通信参数的串口之间互相通信及数据转发,给相关的技术人员在排查...
  • STM32 串口下载软件

    2022-06-16 23:00:08
    STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件...
  • VC++串口通信串口软件程序18经典源码合集: VC 串口通信程序.rar VC 读串口话是动态波形,非常好的应用程序,有源码.rar VC++ 串口实现双机互联 包含视窗加代码.rar VC++ 串口通信,可以收发数据,可选用TCPIP 通信....
  • 安卓手机串口调试软件,很好用的
  • 本款虚拟串口拥有在...可以完美兼容windows 7、win8、win10系统,通过这款vspd虚拟串口软件可以轻松虚拟出两个串口一个用来读、一个用来发,是调试串口的好帮手,比较好用,可以在没有实物的情况下随意调试串口 。
  • Keil 软件仿真的串口调试技巧,这里介绍的方法对C51和汇编语言都是适合的。它最大的好处就是简单、方便,容易使用,不需要使用任何电路,也没有特殊的要求;甚至可以在硬件电路制作好之前就将串口部分的程序编写、...
  • Win10 串口转发软件

    2022-03-22 11:27:33
    1.支持串口之间进行转发 最大支持两个串口进行转发, 2.波特率2400~115200 可选 3.支持HEX 及 ASCII 码显示和一键清空接收框
  • 具体的实现步骤和效果可以去我的博客那里看看:https://www.cnblogs.com/luxiaoguogege/p/9987897.html
  • 一个作品 WinCE 平台的虚拟串口工具.zip
  • 实验是两个80C51单片机利用proteus进行串口通信仿真,包括软件的源代码。可以作为测试评估使用
  • 这是款完全免费的小程序 可以实现 把电脑串口 == 数据...可以把台安装有多串口卡的PC 变成台 多串口服务器 再配合一些n2n 技术 完全可以实现很多 普通硬件串口服务器不能实现的功能 我们的网站 www.ipcsol.org
  • 1、下载解压vspd压缩包,压缩包中有两个程序,分别为:vspd.exe,vspdctl.dll,其中vspd.exe是安装程序,而vspdctl.dll就是破解补丁。 2、先运行vspd虚拟串口安装程序开始安装,安装之后,不要立刻运行它。 3、将...
  • 引言 在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部...
  • 软件可以实现两个串口之间的相互收发信息,如果没有硬件设备,可以下载一个虚拟的串口软件 虚拟出一对串口进行调试 虚拟串口软件下载 直接下载一个VSPD 资源链接:...

    目录

    C#串口助手实现两个串口相互通讯

    虚拟串口软件下载

    软件界面

    程序设计

    自动扫描电脑串口

    打开串口

    串口接受

    发送信息

    关闭串口

    发送中文

    完整代码下载


    C#串口助手实现两个串口相互通讯

    该软件可以实现两个串口之间的相互收发信息,如果没有硬件设备,可以下载一个虚拟的串口软件

    虚拟出一对串口进行调试

    虚拟串口软件下载

    直接下载一个VSPD

    资源链接:https://pan.baidu.com/s/1V1Z5r6o6Iek507tzwwcP5A

    提取码:mmor

    1)点击vspd.exe进行安装:

    2)vspd.exe安装成功之后,把该vspdctl.dll文件替换为vspd.exe安装目录下的同名文件,完成破解

    3)运行桌面创建的vspd快捷方式即可

    软件界面

    用panel容器可以使得单选按钮分组

    然后自己手动在设计界面添加波特率、停止位、校验位

    添加内容完毕

    还需要拖拽一个SerialPort助手到软件界面

    程序设计

    自动扫描电脑串口

    先加一个命名空间引用

            //自动扫描可用串口并添加到串口号列表上
            private void ReflashPortToComboBox(SerialPort serialPort, ComboBox comboBox)
            {                                                               //将可用端口号添加到ComboBox
                if (!serialPort.IsOpen)//串口处于关闭状态
                {
                    comboBox.Items.Clear();
                    string[] str = SerialPort.GetPortNames();
                    if (str == null)
                    {
                        MessageBox.Show("本机没有串口!", "Error");
                        return;
                    }
                    //添加串口
                    foreach (string s in str)
                    {
                        comboBox.Items.Add(s);
                        Console.WriteLine(s);
                    }
                }
                else
                {
                    MessageBox.Show("串口处于打开状态不能刷新串口列表", "Error");
                }
            }

    然后在窗口加载的时候调用该函数

            private void Form1_Load(object sender, EventArgs e)
            {
                //取消跨线程访问检查
                Control.CheckForIllegalCrossThreadCalls = false;
                //自动扫描可用串口
                ReflashPortToComboBox(serialPort1,comboBox1);
                comboBox1.SelectedIndex = 0;//串口号默认值
                comboBox2.SelectedIndex = 4;//波特率默认值9600
                comboBox3.SelectedIndex = 0;//停止位默认值1
                comboBox4.SelectedIndex = 0;//默认无校验位
                //手动注册端口接收事件
                serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
            }

    打开串口

     //打开串口按钮
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    serialPort1.PortName = comboBox1.Text;  //将端口绑定给sp类
                    //设置波特率
                    serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text, 10);//十进制数据转换
                    switch (comboBox3.Text.Trim())            //停止位
                    {
                        case "1":
                            serialPort1.StopBits = StopBits.One;
                            break;
                        case "2":
                            serialPort1.StopBits = StopBits.Two;
                            break;
                        default:
                            MessageBox.Show("Error:参数不正确!停止位", "Error");
                            break;
                    }
                    //设置校验位
                    switch (comboBox4.Text.Trim())
                    {
                        case "无":
                            serialPort1.Parity = Parity.None;
                            break;
                        case "奇校验":
                            serialPort1.Parity = Parity.Odd;
                            break;
                        case "偶校验":
                            serialPort1.Parity = Parity.Even;
                            break;
                        default:
                            MessageBox.Show("Error:参数不正确!校验位", "Error");
                            break;
                    }
    
                    serialPort1.Open();
                    button1.Enabled = false;//打开串口按钮不可用
                    button2.Enabled = true;//关闭串口
                }
                catch (Exception)
                {
                    MessageBox.Show("端口错误,请检查串口", "错误");
                }
            }

    串口接受

      //端口接受事件
            private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)//串口数据接收事件
            {
                if (!radioButton4.Checked)//如果接收模式为字符模式
                {
                    string str = serialPort1.ReadExisting();//字符串方式读
                    textBox2.AppendText(str);//接受显示框添加内容
                }
                else
                { //如果接收模式为数值接收
                    byte data;
                    data = (byte)serialPort1.ReadByte();//此处需要强制类型转换,将(int)类型数据转换为(byte类型数据,不必考虑是否会丢失数据
                    string str = Convert.ToString(data, 16).ToUpper();//转换为大写十六进制字符串
                    textBox2.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ");//空位补“0”   
                    //上一句等同为:if(str.Length == 1)
                    //                  str = "0" + str;
                    //              else 
                    //                  str = str;
                    //              textBox1.AppendText("0x" + str);
                }
            }

    发送信息

       //发送按钮
            private void button3_Click(object sender, EventArgs e)
            {
                byte[] Data = new byte[1];//作用同上集
                if (serialPort1.IsOpen)//判断串口是否打开,如果打开执行下一步操作
                {
                    if (textBox1.Text != "") //发送框信息不为空
                    {
                        if (!radioButton1.Checked)//如果发送模式是字符模式
                        {
                            try
                            {
                                serialPort1.WriteLine(textBox1.Text);//写数据
                            }
                            catch (Exception err)
                            {
                                MessageBox.Show("串口数据写入错误", "错误");//出错提示
                                serialPort1.Close();
                                button1.Enabled = true;//打开串口按钮可用
                                button2.Enabled = false;//关闭串口按钮不可用
                            }
                        }
                        else
                        {
                            for (int i = 0; i < (textBox1.Text.Length - textBox2.Text.Length % 2) / 2; i++)//取余3运算作用是防止用户输入的字符为奇数个
                            {
                                Data[0] = Convert.ToByte(textBox1.Text.Substring(i * 2, 2), 16);
                                serialPort1.Write(Data, 0, 1);//循环发送(如果输入字符为0A0BB,则只发送0A,0B)
                            }
                            if (textBox1.Text.Length % 2 != 0)//剩下一位单独处理
                            {
                                Data[0] = Convert.ToByte(textBox1.Text.Substring(textBox1.Text.Length - 1, 1), 16);//单独发送B(0B)
                                serialPort1.Write(Data, 0, 1);//发送
                            }
                        }
                    }
                }
            }

    关闭串口

            //关闭端口按钮
            private void button2_Click(object sender, EventArgs e)
            {
                try
                {
                    serialPort1.Close();//关闭串口
                    button1.Enabled = true;//打开串口按钮可用
                    button2.Enabled = false;//关闭串口按钮不可用
                }
                catch (Exception err)//一般情况下关闭串口不会出错,所以不需要加处理程序
                {
    
                }
            }

    发送中文

            public Form1()
            {
                InitializeComponent();
                serialPort1.Encoding = Encoding.GetEncoding("GB2312");   //串口编码引入GB2312编码(汉字编码)
            }

    发送中文需要加一句上面的代码

    完整代码下载

    链接:https://pan.baidu.com/s/155Um2JoVwXyaDh_pcje4Lg 
    提取码:06fo 
    如果对你有帮助,就请点赞,谢谢。

    展开全文
  • 文章目录使用两个串口传输文件、串口连接电脑二、传输大文件1. 默认速度传输:115200波特率2. 开始加速:波特率2000000!3. 减速传输:波特率9600三、总结四、参考文章 实验平台:台电脑(或两台) 实验器材:...

    使用两个串口传输文件

    实验平台:一台电脑(或两台)
    实验器材:两根杜邦母线和两个串口
    串口调试助手:SSCOM

    一、串口连接电脑

    使用两根杜邦母线将两个串口的RXD, TXD交叉相连接,实现数据互传。本次实验为了节省成本选择一台电脑,利用两个不同的USB接口来模拟两台电脑。
    效果如图所示:
    在这里插入图片描述

    注意线不要接错了,虽然3V电不死人但还是很痛的。

    连接测试:
    这里我们使用XCOM来测试连接是否成功,这里我们同时打开两个窗口,每个窗口选择不同的串口(这里我们可以看到COM6和COM7都是CH340),并都把波特率设置为115200,然后使用文本进行测试:

    在这里插入图片描述
    串口六发送数据后串口七接收成功,证明连接正常,可以开始下一步。

    二、传输大文件

    平时串口传输的都是文本信息,所以即使是一张图片也相对而言大了不少,所以这里我们的大文件就选择为一张大小为939kb的jpg图片:
    在这里插入图片描述
    这里我们使用SSCOM开始实验,他的功能相比于XCOM更加丰富,满足我们的实验要求。

    1. 默认速度传输:115200波特率

    • 打开两个SSCOM窗口,分别设置不同的窗口但同样的波特率115200,数据位8,停止位1,无校验位。
      在这里插入图片描述* 按照图中步骤开始传输文件
      在这里插入图片描述
      传输过程是一堆乱码,不要慌,这很正常,说他是乱码只是因为我们看不懂而已。
      在这里插入图片描述

    • 找到接收到的文件,更改.dat后缀为jpg,得到原图
      在这里插入图片描述

    在这里插入图片描述

    2. 开始加速:波特率2000000!

    本次传输SSCOM显示耗费了83s,尽管实际要快一点,但还是比较慢,我们试试更高的波特率,直接拉满:
    在这里插入图片描述

    • 开始传输:显示只需要4s,实际花费了6s左右
      在这里插入图片描述

    3. 减速传输:波特率9600

    在这里插入图片描述

    • 开始发送,显示需要1002s
      在这里插入图片描述
    • 并且右边的接收窗口中的乱码也不再占满整个屏幕了
      在这里插入图片描述
      证明每次收到的字段变小了

    三、总结

    由此见得串口的传输速度跟波特率的大小有关系,而且当硬件满足一定条件时,会更快或者更慢。

    经查阅资料,波特率和数据的传输速率有关系,但是波特率并不是数据传输速率,数据传输速率是比特率。比特率在数值上和波特率满足下列公式:

    I=S*log2N

    I为传信率,S为波特率,N为每个符号承载的信息量,而以比特为单位。波特率与比特率的关系也可换算成:比特率=波特率*单个调制状态对应的二进制位数。

    四、参考文章

    平行叶子: 两个串口之间传输文件
    醉意丶千层梦: 通过串口发送图片

    展开全文
  • 双串口调试程序,可以同时调试两个串口,方便实用
  • 虚拟串口软件使用

    2022-06-13 21:24:51
    在工程领域,程序常通过串口通信给设备发送指令来进行控制。 通常我们需要使用虚拟串口来进行通信测试...在设备管理器中可以看到新增的两个串口,并且看到这两个串口彼此相连 使用串口调试软件可以进行调试,打开两个

    在工程领域,程序常通过串口通信给设备发送指令来进行控制。
    通常我们需要使用虚拟串口来进行通信测试。
    常用的虚拟串口软件VSPD
    在这里插入图片描述
    打开vspd,左侧栏显示物理串口,虚拟串口以及其他虚拟串口。通过点击右侧Add Pair可以新增一对虚拟串口。这两个串口彼此相连,也就是说com1发数据,对应com2接受数据,反过来也一样。
    测试时,就可以将com1当作为与计算机相连接,而com2与设备相连接,进行通信测试
    在设备管理器中可以看到新增的两个串口,并且看到这两个串口彼此相连
    在这里插入图片描述
    使用串口调试软件可以进行调试,打开两个串口调试工具2.0,分别选择com1和com2,打开串口,实现通信测试
    在这里插入图片描述
    实际使用时,上位机软件使用com1,而串口调试工具使用com2,实现软件功能的测试。

    在vspd中可以看到这两个虚拟串口的数据收发情况
    在这里插入图片描述
    移除虚拟串口只需要选择串口,点击Delete pair

    软件下载:
    串口调试软件:
    SerialPort2.7z
    串口通信调试助手v5.21.EXE
    VSPD:
    Virtual Serial Port Driver

    展开全文
  • .\VC++串口通信源代码,台机器间的串口通信,内含串口通信类.zip .\vc++串口通讯程序,该程序能实现打字机方式进行数据传输.zip .\VC++使用串口控件实现温度数据采集并显示.rar .\VC++多串口控制解决方案源...
  • 【QT】编写一个简易的串口软件

    千次阅读 多人点赞 2018-11-23 17:39:05
    简述 QT学了一点发现学不进去,索性看看能不能直接撸个程序,于是就有了这个简易的串口软件… ...新建一个Qt项目 既然用到串口,那么我们就要在.pro里增加串口的库 QT += serialport # 串口库...
  • MX虚拟串口

    2019-04-17 07:07:20
    3. 【串口聚合 】:多个真实串口合成一个虚拟串口一个软件可访问多台设备。 4. 【串口群组 】:向群组中任何串口发送数据,其它串口都能接收到。 5. 【串口客户端】:串口转tcp客户端,方便实现远程串口应用。 6. ...
  • * Edit,含Com Settings和TCP Settings两个选项 ** Com Settings,配置要共享的串口信息 *** Com Port #,待共享的串口号 *** Baud Rate,波特率 *** Parity,一般选择“None” *** Data bits,一般选择“8” ...
  • 串口分身”完成多应用访问同一台串口设备工具/原料安装软件创建“串口分身”注意事项 实际应用中,会遇到电脑中安装的多个软件要访问同一台串口设备的情景。 这时候可以使用虚拟串口工具软件,将物理串口化身...
  • 串口调试工具 可以用来...这样,就需要端 都是 孔 的 串口线。检测电脑的串口是否正常:如果只有1台电脑,可以 短接 串口 的 2、3针(不过,小心烧坏了 串口!)这时可以 串口调试工具 发送数据,如果 串口...
  • 、流程简述 程序可以参考: https://blog.csdn.net/colcloud/article/details/42454839 这是我参考后简化的版本: https://github.com/Agwave/SerialThread/blob/master/SerialThread.py 下面利用虚拟串口软件和...
  • 版本V2.0新增了可任意截取串口获取的字符串,将截取后得到的1或2个 字符串分别存入数据表中的两个字段的功能。达到采集串口上获取数据存入MySQL数据库的作用,进而可以使用各种算法和方法处理这些数据。
  • 串口调试软件sscom32

    2018-10-12 18:16:37
    键更新驱动,自动寻找驱动,会提示该驱动数据无效,...2、在服务列表中找到“Device Install Service”和“Device Setup Manager”两个服务项,确认这两个服务是否开启,如果没有开启,可以点击左侧的“启动”此服务。
  • 虚拟串口是计算机通过软件模拟的...首先要安装虚拟串口设置的软件,网上有很多设置虚拟串口软件,我的是VSPD,可试用1月,试用期过后,该软件将不能使用,但不用担心,所设置的虚拟串口不会消失,可以继续使用
  • VB串口程序,,是一个串口使用例程,对初学者有用,特别是工控类的.rar VB串口编程,关于上位机的应用,特别适合初级学习VB的学员.rar VB串口编程实现完整的多费率电表读数软件.rar VB串口编程调试精灵源码.rar VB串口调试...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,609
精华内容 31,443
关键字:

一个软件用两个串口