none
SerialPort無法收到任何訊息 RRS feed

  • 問題

  • C# 配合 NETCF2 在 VS2005 上面 平台 WINCE 5

    在上面開發SerialPort 連接 com6 讀取一個 Reader

    可以開啟成功  可是卻一直收不到訊號

    可是用C++開發的卻可以成功讀取

    請問可能是哪裡的關係

     

    我的程式如下:

     

     

    Code Snippet

    private bool OpenComPort(string ComNumber)
            {                    

                try
                {
                    serialPort1.Handshake = System.IO.Ports.Handshake.None;
                    serialPort1.PortName = ComNumber;
                    serialPort1.Parity = System.IO.Ports.Parity.None;
                    //serialPort1.DtrEnable = true;
                    serialPort1.BaudRate = 38400;
                    serialPort1.StopBits = System.IO.Ports.StopBits.One;
                    serialPort1.DataBits = 8;
                    //serialPort1.ReceivedBytesThreshold = 1;                  
                    serialPort1.Open();
                    return true;
                }
                catch (IOException ex)
                {
                    MessageBox.Show(ex.Message);
                    return false;
                }
            }

     

    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                string inputData = serialPort1.ReadExisting();           
                MessageBox.Show("輸入:" + inputData);

            }

     

    2008年3月21日 上午 05:32

所有回覆

  • Hi,

    有利用中斷點去監看過狀態嗎?可以看看Open、Write/Read等時間點的狀態。

    2008年3月21日 上午 09:45
    版主
  •  

    確實試過   serialport1.isOpen 是 ture的狀態

    表示確實連結上了

    利用XP的超級終端機連接這張RFID Reader

    參數設定都一樣 下了命令之後就可以正常運作

    唯一不同就是 終端機上的流量控制是選擇硬體

     

    而程式裡面的的handshaing方式 我設成none

    就這差別而已

     

    然而XP流量控制設定成Xon/Xoff 或是 無   都會得到E,2的錯誤訊息

    這情況和我在程式中把handshaking 設定成 Xon/Xoff 或 RequestToSending所得到的結果相同

    但是HandShaking設定成none卻什麼都收不到  真是奇怪

    2008年3月23日 上午 02:33
  • 改用 Timer 去 Polling Read 看看

    使用過(含自己開發)的平台 Recever Event 在 NETCF上並不會產生

    Win32 API是正常的

     

     

    2008年3月29日 上午 09:37