【发布时间】:2023-03-23 19:05:01
【问题描述】:
是否可以在用 C# 发送命令后立即从串口读取回复?我有一个步进电机驱动程序,正在尝试读取当前步数并将其显示在我的 C# Windows 窗体程序的状态栏中,使用 .net 框架 4.0。为此,我需要发送“RC”命令。然后司机发回号码。我的问题是:如何在写入串口后立即读取串口回复?对此的任何帮助都会非常有帮助!
【问题讨论】:
标签: .net visual-studio-2010 c#-4.0 serial-port
是否可以在用 C# 发送命令后立即从串口读取回复?我有一个步进电机驱动程序,正在尝试读取当前步数并将其显示在我的 C# Windows 窗体程序的状态栏中,使用 .net 框架 4.0。为此,我需要发送“RC”命令。然后司机发回号码。我的问题是:如何在写入串口后立即读取串口回复?对此的任何帮助都会非常有帮助!
【问题讨论】:
标签: .net visual-studio-2010 c#-4.0 serial-port
是的,请致电ReadLine()。
但是有一个问题,串行端口速度非常慢。常见的波特率设置为 9600 波特,接收每个字符需要一毫秒。假设你得到 6 位数字,你正在查看 RC + lf + 000000 + lf + 控制器开销毫秒。你的程序在世界上已经死了至少 10 毫秒。相当于大约 2000 万个 cpu 周期。
这是否是一个真正的问题完全取决于您的应用需要多少 CPU 周期。您可以通过使用线程来解决它,或者显式地使用只与控制器对话的线程,或者使用 DataReceived 事件。
【讨论】:
您可能希望使用包含流和缓冲区组合的 ReadExisting 方法。在不了解细节的情况下,我强烈建议您在此处查看 MSDN 文档
【讨论】: