关于USB虚拟串口通信速度的问题!(语言-c#)

使用的是C#winform做一个发送数据的上位机。
在一个循环里不停的发送数据到下位机。使用的是USB虚拟串口通信,发送速度和什么有关呢。
我想的是,这样的话代码还能优化吗?影响发送的速度和硬件的什么有关系呢?

for(int i = 0; i < data.count;i++)
{
  SerialPort.Write("1234567890");
}

光从这里你的代码不需要优化。

你需要理解串口通信中 波特率的概念,这个是和硬件、软件都相关的串口通信中一个很重要的指标。

通信双方必须在相同的波特率下才能正常通信,否则通信会失败的。

没啥用,就算你这里写的在好,就是你写成万兆输出,实际接上硬件还是受波特率上限这个天花板控制

影响串口传输的和你代码没关系
1.write并没有发送数据,他只是写道了串口缓冲区
2.串口驱动自己从缓冲区里根据波特率发送
3.发送过程中实际还受底层传输协定控制,比如数据发送窗口,对方缓冲区大小,对方移除缓冲区速度,校验控制

也就是,你这里就算1分钟write了1兆字节也没任何用用处,最好的情况也就是每秒发送_115200字节数据出去_(假设你设置的波特率是115200)
修正一下:115200还不是字节,115200是bit,也就是1秒115200bit,换算成bayte除以8
我懒得算了,引用网上已经算好的近似值

波特率115200 = 115200 (位/秒)。

如果没有校验位,就应该除以 10,得到的是每秒字节数:波特率115200 = 115200 (位/秒) = 11520 (字节/秒)。

再除以 1024,就是每秒 KB 数:波特率115200 = 115200 (位/秒) = 11.25 (KB/秒)。如果有一位奇偶校验位,就应该除以 11,得到的是每秒字节数。

最后得出:波特率115200 = 115200 (位/秒) = 10.27 (KB/秒)。