【问题标题】:hyperterminal vs c# Serial Port超级终端 vs c# 串口
【发布时间】:2012-01-16 09:22:05
【问题描述】:

所以我被困住了,我需要再次求助于你们的专家,让我摆脱困境。

我有一个 c# 表单项目,它将通过串行端口 (rs232) 移动相机。 (视觉工作室 2010)

当我使用超级终端时,相机会做出应有的反应。

设备使用 ASCII 进行通信。我认为 serialPort 类在发送字节时会将字符串转换为 ASCII。如果我对此有误,请纠正我。 当我加载表单项目时,设备没有反应。我尝试过两种方式构建表单,

我用过

 SerialPort com = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);  
com.Open();

private void button1_Click(object sender, EventArgs e)
{
com.Write("move left" + "/r/n")
}

我还使用了串行端口工具,方法是将其放入我的表单并使用

调用该函数
serialPort1.Write("move left" + "/r/n");

我尝试了不同的握手和不同的波特率。我已确保设置也与相机上的设置相匹配。

我需要你的帮助。有人可以向我解释为什么设备没有响应吗?它就像未连接一样。

串行链接在开始之前是否需要某种协商(例如通过 telnet 连接)?那么你能指点我吗?

我也试过

serialPort1.write("move left"+serialPort1.newline)

//and

serialPort1. write("move left"+"/n")

【问题讨论】:

  • 您只发布了写入的代码,而不是读取的代码。最好发布您实际遇到问题的代码。
  • 在您提供的代码中,您的斜杠是向后的“/n”应该是“\n”
  • @eatumup 你能用示波器看到信号变化吗?或者您是否尝试过使用零调制解调器电缆连接另一台 PC 以确保软件正在传输?
  • 我希望我有这些设备之一进行检查。然而我没有。但我认为它应该可以工作,因为如果我打开超级终端它可以正常工作。 VS 也确实成功打开了 com 端口。

标签: c# visual-studio-2010 serial-port hyperterminal


【解决方案1】:

在超级终端中,您是否在命令后按回车键?如果是这样,您将需要发送\r\n,这实际上与在超级终端中的回车相同。

【讨论】:

  • 哦,谢谢你提到这一点。我忘了包括那个。但是结果相同......我也启用了 Dtr 和 Rts
  • 所以你发送了“向左移动\r\n”但没有结果?
  • @eatumup 你试过使用WriteLine 方法吗?
  • 查看您上面的添加,您还没有添加 \r 并且您的 /n 应该是 \n
  • 斜杠应该是 \ 而不是 /
【解决方案2】:

好的,所以我想我只是太精疲力尽了。离开项目几天后,我发现了问题。 DiscardNull 属性设置为 false。它需要设置为真。谢谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    相关资源
    最近更新 更多