我有一个可编程的电动气动调节器,我需要通过串行端口与之通信,我从未做过类似的事情。该操作手册显示了一些与其进行通讯的说明。这些是以下内容:
Specification
==============
Comm. type
Master/slave type
Synchronous type
Asynchronous type
Comm. speed
9,600[bps]
Start bit
1[bit]
Data length
8[bit]
Stop bit
1[bit]
Parity bit
N/A
Flow control
N/A
Command end code
CR・LF
Character-code
ASCII
我已成功将其与计算机连接,但是当我试图控制它并发送命令时,通信LED会亮起,但它不会设置压力。我认为问题将出在命令结束代码或字符代码上。命令示例是:send "SET 614"
(其工作范围是0-1023)。我在变量中使用推荐的规格(通信速度,起始位等)(只是为了多功能)。当您关闭UI表单时,程序将关闭端口。
private void ComunicateComport()
{
comtimer.Stop();
Global.Refreshtime = Global.Refreshrate;
comtimer.Start();
SerialPort ComPort = new SerialPort(Global.COMPort,Global.Baudrate,Parity.None,Global.Databits,StopBits.One);
if (ComPort.IsOpen == false)
{
ComPort.Open();
}
Global.Error = 0;
ComPort.DiscardOutBuffer();
ComPort.WriteLine("SET 100");
}
答案 0 :(得分:1)
不要使用WriteLine替换为ComPort.Write(String),然后使用ComPort.Write({0x0D,0x0A},0,显式发送