有没有办法使用2-3 mbps的串口?

时间:2011-06-15 19:54:05

标签: c# serial-port

我需要以2-3 mbps的速度向C#Windows PC应用程序传输串行数据。 C#winforms似乎对此并不满意。

openFileDialog.Filter =
    @"Image Files(*.bmp;*.jpg;*.jpeg;*.gif)|*.bmp;*.jpg;*.jpeg;*.gif|All files (*.*)|*.*";
if (openFileDialog.ShowDialog() != DialogResult.OK) return;
var image = Image.FromFile(openFileDialog.FileName);
serialPort1.Open();
// Now send the image at 2-3 mbps
...

BaudRate = 115200有效。 BaudRate = 230400导致System.IO.IOException。

enter image description here

6 个答案:

答案 0 :(得分:9)

打开设备管理器并展开“端口”。

enter image description here

双击COM1并转到“端口设置”​​选项卡

enter image description here

在“每秒位数”下,列出您可以在com端口的proprieties字段中输入的值。如果您想要高于硬件允许的硬件,则需要使用其他硬件或使用串行端口以外的其他设备在两台设备之间进行传输。

如果您要在评论中发布您要连接的其他设备,我们可以建议更好的方式。

答案 1 :(得分:4)

如果您的硬件支持这些速度,那么Windows也可以。 .NET SerialPort类可能允许也可能不允许您将波特率设置为高,如果不是,则尝试调用SetCommState

答案 2 :(得分:4)

这篇文章已有4年历史了,对于那些磕磕绊绊的人来说:

1,串口硬件需要支持数据速率。 2,驱动程序需要让您选择所需的波特率。某些驱动程序或芯片可能需要调整才能选择非标准(或高于115200)的波特率。我遇到的一些USB转串口芯片的最大波特率:

  • Silicon Labs CP2102& CP2109 :921.6 kbps
  • FTDI FT232R :3 Mbps
  • 多产的PL-2303HX& PL-2303HXD :12Mbps

我目前正在使用FT232R @ 1Mbps

关于C#和.NET的使用:.NET似乎在串口很糟糕。请参阅http://www.sparxeng.com/blog/software/must-use-net-system-io-ports-serialport(引用此主题,我是如何到达此处的)。

一位同事为我做了一个c#.NET程序,使用FT232R和.NET 3.5以1Mbps的速度进行通信。它可以在他的PC和笔记本电脑上运行,但在我的电脑上却会以9600bps的速度停留。尝试了一些事情,包括驱动程序卸载,重新启动,冷启动和手动驱动程序安装无济于事。然后他重新编译它为.NET 4和voilá,它工作。有趣的是,他之后给了我一个小修改,但错误地为.NET 3.5编译了它,但它起作用了。

答案 3 :(得分:2)

没有。这是硬件的限制。从内部看,它看起来像是最大的。

http://msdn.microsoft.com/en-us/library/aa363189(v=vs.85).aspx

答案 4 :(得分:2)

我使用过以1Mbps运行的BlueTooth串口,看起来它并不关心设置的速度。

答案 5 :(得分:-1)

串行端口通常支持高达115200 bps的速度,或者仅超过14 KBps。有些设备支持更高的波特率,但距离2-3 mbps还有很长的路要走。

您选择使用串口是否有特殊原因?虽然仍然使用,但它被广泛弃用,支持更现代的方法。如果您在一台计算机上的进程之间进行传输,则命名管道或仅使用文件系统可能会更好。如果您在两台计算机之间进行传输,请考虑使用TCP / IP网络。

MSDN上的这个链接讨论了WCF推荐和支持的不同传输,并且可能是一个开始寻找的好地方。 http://msdn.microsoft.com/en-us/library/ms733769.aspx

相关问题