用C#写入后读取串行应答

时间:2011-04-03 03:49:45

标签: .net visual-studio-2010 c#-4.0 serial-port

在C#中发送命令后,是否可以立即从串口读取回复?我有一个步进电机驱动程序,我正在尝试读取当前步骤编号,并使用.net framework 4.0将其显示在我的C#Windows窗体程序的状态栏中。为此,我需要发送“RC”命令。然后司机发回号码。我的问题是:如何在写入串口后立即读取序列回复?任何帮助都会非常有帮助!

2 个答案:

答案 0 :(得分:2)

是的,请致电ReadLine()

然而,有一个问题,串口很慢。常见的波特率设置为9600波特,每个字符需要1毫秒才能收到。假设你得到6位数,你正在看RC + lf + 000000 + lf +控制器开销毫秒。你的程序已经死了至少10毫秒。相当于大约2000万个cpu周期。

这是否真正的问题完全取决于您的应用中需要多少cpu周期。你可以通过使用线程来解决它,或者使用一个除了与控制器交谈或使用DataReceived事件之外什么都不做的线程。

答案 1 :(得分:0)

您可能希望使用包含流和缓冲区组合的ReadExisting方法。在不知道具体细节的情况下,我强烈建议您在此处查看MSDN文档

SerialPort Class (System.IO.Ports)