使用C#的RFID应用程序。无法读取数据的原因

使用C#的RFID应用程序。无法读取数据的原因,c#,rfid,C#,Rfid,我已经设法连接到RFID USB读卡器使用下面的代码。。。但是,每当我的标签放在读卡器附近时。它不会运行函数并产生“读取数据…”的输出。谁能给我一个有效的RFID编码?下面是我写的代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets;

我已经设法连接到RFID USB读卡器使用下面的代码。。。但是,每当我的标签放在读卡器附近时。它不会运行函数并产生“读取数据…”的输出。谁能给我一个有效的RFID编码?下面是我写的代码

        using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Net.Sockets;
    using System.IO.Ports;
    using System.Threading;
    using System.Windows.Forms;
    using Gtk;

    namespace Testing1
    {
        public class Testing1
        {
            public static SerialPort iSerialPort = new SerialPort();

            static int Main() 
            {
                string strException = string.Empty;
                string strComPort = "COM17";
                int nBaudrate=Convert.ToInt32(9600);

                int nRet = OpenCom(strComPort, nBaudrate, out strException);
                if (nRet != 0)
                {
                    string strLog = "Connect reader failed, due to: " + strException; 
                    Console.WriteLine(strLog);
                    //return;
                }
                else
                {
                    string strLog = "Reader connected " + strComPort + "@" + nBaudrate.ToString();
                    Console.WriteLine(strLog);
                }

                Console.WriteLine("Press any key to exit.");
                Console.ReadKey();

                iSerialPort.Close();
                return 0;
            }

            public static int OpenCom(string strPort, int nBaudrate, out string strException)
            {

                strException = string.Empty;

                if (iSerialPort.IsOpen)
                {
                    iSerialPort.Close();
                }

                try
                {
                    iSerialPort.PortName = strPort;
                    iSerialPort.BaudRate = nBaudrate;
                    iSerialPort.ReadTimeout = 3000;
                    iSerialPort.DataBits = 8;
                    //iSerialPort.Parity = Parity.None;
                    //iSerialPort.StopBits = StopBits.One;
                    //iSerialPort.Handshake = Handshake.None;
                    iSerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
                    iSerialPort.Open();
                }
                catch (System.Exception ex)
                {
                    strException = ex.Message;
                    return -1;
                }



                return 0;
            }

            private static void DataReceivedHandler(object sender,SerialDataReceivedEventArgs e)
            {
                SerialPort sp = (SerialPort)sender;
                string indata = sp.ReadExisting();
                Console.WriteLine("Data Received:");
                Console.Write(indata);
            }
        }
    }

当您的
try…catch
块未被注释掉时,您是否得到任何异常?您如何知道事件处理程序未被调用?因为您没有在控制台上获得输出,或者因为您设置了断点?在与主线程不同的线程中调用事件处理程序-这可能是控制台输出的问题。设置断点。我已经编辑了代码,控制台现在显示Reader已连接COM17@9600. 是否有更好的方法证明与设备的良好连接?首先使用终端仿真器,例如超级终端或Putty。这有助于消除一些简单的错误,如端口设置错误、设备驱动程序出现问题以及忘记向RFID阅读器发出命令。