【发布时间】:2012-03-13 13:17:59
【问题描述】:
我们正在.net compact framework 3.5 上开发 WinCE SerialPort 应用程序。
在 serialPort 类中,我们有 DataReceived 事件,不幸的是它只触发了一次。
我们的串口设置如下:
_com = new SerialPort();
_com.PortName = str_comport;
_com.BaudRate = pBaudRate;
_com.ReadTimeout = 1000 * 10 * 1;
_com.WriteTimeout = 1000 * 10 * 1;
_com.Handshake = Handshake.None;
_com.ReceivedBytesThreshold = 1;
_com.RtsEnable = true;
_com.DtrEnable = true;
_com.Parity = pParity;
_com.DataBits = pDataBits;
_com.StopBits = pStopBits;
_com.DataReceived += new SerialDataReceivedEventHandler(this.Receive);
_com.Open();
....
private void Receive(object sender, SerialDataReceivedEventArgs e)
{
_receivedString = _port.ReadExisting();
_log.WriteFile("RX : " + _receivedString);
}
我们尝试过先打开端口并附加接收到的数据事件,但没有用。
同样的代码在 Windows XP/Windows 7 机器上运行良好。可能的原因是什么。
【问题讨论】:
-
当您的 DataReceived 事件处理程序方法由于某种原因未完成时,通常会发生这种情况。从这里看不到。
-
在我的接收方法中,我将记录正在获取的数据。私人无效接收(对象发送者,SerialDataReceivedEventArgs e){_receivedString = _port.ReadExisting(); _log.WriteFile("RX : " + _receivedString); }
标签: c# compact-framework