我编写了一个简单的 winform 应用程序来读取从微控制器接收到 RS232 DE9 串行端口的数据。我需要控制何时发送数据,因此我为此控制了 RtsEnable 属性。程序结构类似于这样。
byte[] data = new byte[serialPort1.BytesToRead];
serialport1.RtsEnable = true;
private void serialPort1_DataReceived(object sender,
System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.Read(data, 0, data.Length);
serialport1.RtsEnable = false;
this.Invoke(new EventHandler(ProcessData));
serialport1.RtsEnable = true;
}
现在,问题很简单。当 RtsEnable 一开始设置为 true 时,实际上并没有设置为 true。当然,当我调试时,它显示为 RtsEnable = true。但是当我检查电路中的电压时,RTs 仍然不高。
我认为我的电路没有问题,因为我手动检查了 serail 端口的电压输出。所以,我认为这与我的代码有关。
知道为什么会这样吗?提前致谢