我需要以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。

发布于 2011-06-16 04:15:28
打开设备管理器并展开“端口”。

双击COM1并转到"Port Settings“选项卡

在"Bits per second“下列出了您可以在com端口的属性字段中输入的值。如果您想要比您的硬件所允许的更高,您需要其他硬件或使用串行端口以外的其他东西在两个设备之间传输。
如果您在评论中发布您正在连接的另一台设备是什么,我们可能会提出一个更好的方法。
发布于 2011-06-16 04:01:20
如果你的硬件支持这些速度,那么Windows也支持。.NET SerialPort类可能允许也可能不允许您将波特率设置得如此之高,如果不允许,则尝试调用SetCommState。
发布于 2015-12-07 21:30:16
这篇文章已经发布4年了,所以对于那些偶然发现它的人来说:
首先,串口硬件需要支持数据速率。第二,司机需要让你选择想要的波特率。一些驱动程序或芯片可能需要调整,让您选择非标准(或高于115200)波特率。我遇到的几个USB到串行芯片的最大波特率:
我目前使用的是FT232R @1 1Mbps
关于C#和.NET的使用:.NET在串行端口上似乎很糟糕。请参阅http://www.sparxeng.com/blog/software/must-use-net-system-io-ports-serialport (它引用了这个线程,也是我来到这里的原因)。
一位同事为我制作了一个c# .NET程序,让我可以使用FT232R与.NET 3.5以1 1Mbps的速度进行通信。它在他的PC和一台笔记本电脑上都能用,但在我的PC上却卡在9600bps。尝试了几种方法,包括卸载驱动程序、重新启动、冷启动和手动安装驱动程序,但均无济于事。然后他为.NET 4重新编译了它,瞧,它起作用了。有趣的是,在那之后,他递给我一个小的修改,但错误地将其编译为.NET 3.5,但它起作用了。
https://stackoverflow.com/questions/6363504
复制相似问题