我們正在開發WinCE SerialPort應用程序.net compact framework 3.5。串行端口DataReceived事件只能在Compact Framework中觸發
在serialPort類中我們有DataReceived事件,所幸它只發射一次。
我們的SerialPort設置如下:
_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 Machine上工作正常。可能是什麼原因。
通常,這發生在您的DataReceived事件處理程序方法因某些原因未完成時發生。從這裏看不到它。我的接收方法中的 – 2012-03-13 13:41:50
將會記錄正在獲取的數據。 private void Receive(object sender,SerialDataReceivedEventArgs e) { _receivedString = _port.ReadExisting(); _log.WriteFile(「RX:」+ _receivedString); } – Siddharood 2012-03-13 13:54:53