【发布时间】:2009-12-04 16:39:25
【问题描述】:
我有一个通过串行端口向设备发送 ASCII 命令的程序。该程序是一个演示,并没有做我想要的。
我只是想让设备在 c# 中响应,但我没有得到任何回报。 所有的串口设置都是正确的。 我发送的消息与演示软件完全相同。
//e.g message <STX>ABC<EOT>
byte[] msg = new byte[5];
msg[0] = 0x02;
msg[1] = 0x41;
msg[2] = 0x42;
msg[3] = 0x43;
msg[4] = 0x04;
comport.write(msg, 0,msg.length)
该设备是监视器。该代码只是一个示例。没有心跳只是对发送的正确消息或错误消息的响应。设置为标准 9600-8-N-1。 “针脚 2 和 3(TX 和 RX)之间的回形针。”是的,我知道电缆有效,因为它与有效的产品软件一起使用。我会取回我发送的内容。我使用了一个虚拟 com 程序,一切似乎都很好。 “6 个字节,但只初始化前 5 个字节。”抱歉错字。
将 SerialPort.DtrEnable 和 RtsEnable 属性设置为 true。在 C# 中默认开启。我已经尝试过超级终端,但也没有得到回应。我已经发送了 \r 和 \n 没有运气。
【问题讨论】:
-
太模糊了。设备是什么?演示的来源是什么?设备是否有状态灯或其他类似的指示灯来表明它正在接收您认为您正在发送的输入?等等。
-
设备是什么?协议到底是什么?应该退回什么?设备文档怎么说?换句话说,需要更多信息。
-
这不包含任何可以帮助诊断问题的信息...
comport的类型是什么,它是如何初始化的?你怎么知道串口设置是正确的? -
你用的是串口监控软件吗?只有这样才能确定您发送的是您认为发送的内容。
-
这看起来像是我们曾经做过的时钟。
标签: c# serial-port ascii