-
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转虚拟串口软件
2018-01-02 16:01:11创建虚拟串口,并可将发往虚拟串口的数据往TCP/UDP转换并传输出去,也可以接收TCP/UDP数据往串口转发。 -
一款软件工具实现两个串口之间互相转发数据的功能
2022-01-22 19:23:38介绍一种基于windows下的VS软件使用MFC框架开发一个软件工具的方法,实现两个串口之间互相转发数据的功能,该工具可以实现串口数据监听,支持两个不同通信参数的串口之间互相通信及数据转发,给相关的技术人员在排查... -
STM32 串口下载软件
2022-06-16 23:00:08STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件STM32 串口下载软件... -
VC++串口通信串口软件程序18个经典源码合集.zip
2021-11-08 15:56:39VC++串口通信串口软件程序18个经典源码合集: VC 串口通信程序.rar VC 读串口话是动态波形,非常好的应用程序,有源码.rar VC++ 串口实现双机互联 包含视窗加代码.rar VC++ 串口通信,可以收发数据,可选用TCPIP 通信.... -
Android 安卓手机串口调试软件,一共有两个,亲测可用
2022-07-27 22:10:21安卓手机串口调试软件,很好用的 -
一款强大的虚拟串口软件
2020-01-08 14:31:07本款虚拟串口拥有在...可以完美兼容windows 7、win8、win10系统,通过这款vspd虚拟串口软件可以轻松虚拟出两个串口,一个用来读、一个用来发,是调试串口的好帮手,比较好用,可以在没有实物的情况下随意调试串口 。 -
Keil 软件仿真的串口调试技巧
2020-08-13 17:38:17Keil 软件仿真的串口调试技巧,这里介绍的方法对C51和汇编语言都是适合的。它最大的好处就是简单、方便,容易使用,不需要使用任何电路,也没有特殊的要求;甚至可以在硬件电路制作好之前就将串口部分的程序编写、... -
Win10 串口转发软件
2022-03-22 11:27:331.支持串口之间进行转发 最大支持两个串口进行转发, 2.波特率2400~115200 可选 3.支持HEX 及 ASCII 码显示和一键清空接收框 -
001_C#我的第一个串口上位机软件
2018-11-20 15:14:47具体的实现步骤和效果可以去我的博客那里看看:https://www.cnblogs.com/luxiaoguogege/p/9987897.html -
一个作品 WinCE 平台的虚拟串口工具.zip
2022-06-19 18:18:30一个作品 WinCE 平台的虚拟串口工具.zip -
两个51单片机串口通信
2013-09-19 13:11:48实验是两个80C51单片机利用proteus进行串口通信仿真,包括软件的源代码。可以作为测试评估使用。 -
虚拟串口服务器(用软件实现 MOXA NP5110 串口服务器)工业级
2016-12-24 21:58:15这是一款完全免费的小程序 可以实现 把电脑串口 == 数据...可以把一台安装有多串口卡的PC 变成一台 多串口服务器 再配合一些n2n 技术 完全可以实现很多 普通硬件串口服务器不能实现的功能 我们的网站 www.ipcsol.org -
win10下的虚拟串口软件
2018-11-13 12:26:211、下载解压vspd压缩包,压缩包中有两个程序,分别为:vspd.exe,vspdctl.dll,其中vspd.exe是安装程序,而vspdctl.dll就是破解补丁。 2、先运行vspd虚拟串口安装程序开始安装,安装之后,不要立刻运行它。 3、将... -
Keil软件仿真的串口调试技巧
2020-11-26 04:51:37引言 在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部... -
C#串口助手实现两个串口相互通讯
2021-05-17 16:24:47该软件可以实现两个串口之间的相互收发信息,如果没有硬件设备,可以下载一个虚拟的串口软件 虚拟出一对串口进行调试 虚拟串口软件下载 直接下载一个VSPD 资源链接:...目录
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
如果对你有帮助,就请点赞,谢谢。 -
嵌入式系统基础:使用两个串口传输文件
2021-11-10 01:34:00文章目录使用两个串口传输文件一、串口连接电脑二、传输大文件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为每个符号承载的信息量,而以比特为单位。波特率与比特率的关系也可换算成:比特率=波特率*单个调制状态对应的二进制位数。
四、参考文章
-
-
双串口调试程序,可以同时调试两个串口,方便实用
2010-06-03 16:37:26双串口调试程序,可以同时调试两个串口,方便实用 -
虚拟串口软件的使用
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++串口通信20个经典源码合集.zip
2021-12-09 20:50:00.\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:203. 【串口聚合 】:多个真实串口合成一个虚拟串口,一个软件可访问多台设备。 4. 【串口群组 】:向群组中任何串口发送数据,其它串口都能接收到。 5. 【串口客户端】:串口转tcp客户端,方便实现远程串口应用。 6. ... -
非常好用的串口共享软件
2018-05-04 14:42:19* Edit,含Com Settings和TCP Settings两个选项 ** Com Settings,配置要共享的串口信息 *** Com Port #,待共享的串口号 *** Baud Rate,波特率 *** Parity,一般选择“None” *** Data bits,一般选择“8” ... -
用“串口分身”完成多个应用访问同一台串口设备
2019-04-27 10:41:50用“串口分身”完成多个应用访问同一台串口设备工具/原料安装软件创建“串口分身”注意事项 实际应用中,会遇到电脑中安装的多个软件要访问同一台串口设备的情景。 这时候可以使用虚拟串口工具软件,将物理串口化身... -
串口设置软件 串口调试工具如何使用
2021-07-20 00:41:06串口调试工具 可以用来...这样,就需要一根 两端 都是 孔 的 串口线。检测电脑的串口是否正常:如果只有1台电脑,可以 短接 串口 的 2、3针(不过,小心烧坏了 串口!)这时可以用 串口调试工具 发送数据,如果 串口... -
利用python程序、虚拟串口软件、串口通信助手,实现串口通信(两串口互相收发文字)
2019-10-04 20:26:13一、流程简述 程序可以参考: https://blog.csdn.net/colcloud/article/details/42454839 这是我参考后简化的版本: https://github.com/Agwave/SerialThread/blob/master/SerialThread.py 下面利用虚拟串口软件和... -
串口数据采集并自动写入MySQL数据软件
2017-03-10 08:25:42版本V2.0新增了可任意截取串口获取的字符串,将截取后得到的1或2个 字符串分别存入数据表中的两个字段的功能。达到采集串口上获取数据存入MySQL数据库的作用,进而可以使用各种算法和方法处理这些数据。 -
串口调试软件sscom32
2018-10-12 18:16:37键更新驱动,自动寻找驱动,会提示该驱动数据无效,...2、在服务列表中找到“Device Install Service”和“Device Setup Manager”两个服务项,确认这两个服务是否开启,如果没有开启,可以点击左侧的“启动”此服务。 -
单片机虚拟串口及界面设置
2020-08-28 20:09:44虚拟串口是计算机通过软件模拟的...首先要安装虚拟串口设置的软件,网上有很多设置虚拟串口的软件,我用的是VSPD,可试用1个月,试用期过后,该软件将不能使用,但不用担心,所设置的虚拟串口不会消失,可以继续使用。 -
VB串口通信UART程序实例源码合集学习资料(200个).zip
2021-12-11 07:47:41VB串口程序,,是一个串口使用例程,对初学者有用,特别是工控类的.rar VB串口编程,关于上位机的应用,特别适合初级学习VB的学员.rar VB串口编程实现完整的多费率电表读数软件.rar VB串口编程调试精灵源码.rar VB串口调试...