Serial port 如何在C中连接到特定的RFID usb设备#

Serial port 如何在C中连接到特定的RFID usb设备#,serial-port,usbserial,Serial Port,Usbserial,我有一个RFID设备,它通过usb(串口或com)连接到pc并发送数据 如何获取它连接的端口的名称? 我怎样才能得到它的数据?(它以十六进制格式发送16个字节) 我用c语言写了这段代码,但它不起作用 var sp = new SerialPort(device_names.Last<string>(), 4800); try { sp.Open(); string received = sp.Rea

我有一个RFID设备,它通过usb(串口或com)连接到pc并发送数据 如何获取它连接的端口的名称? 我怎样才能得到它的数据?(它以十六进制格式发送16个字节)

我用c语言写了这段代码,但它不起作用

var sp = new SerialPort(device_names.Last<string>(), 4800);

        try
        {

            sp.Open();

            string received = sp.ReadLine();

            while (received.CompareTo(null) == 0)
            {
                Console.WriteLine("nothing received yet!");
            }

            if (received.CompareTo(null)!=0)
            {
                Console.WriteLine("device connected to: " + device_names.Last<string>()+"reading "+ received);
            }

        }
        catch
        {
            Console.WriteLine("device NOT connected to: " + device_names.Last<string>());

        }

        finally
        {
            sp.Close();
        }
var sp=new SerialPort(设备名称.Last(),4800);
尝试
{
sp.Open();
接收到的字符串=sp.ReadLine();
while(received.CompareTo(null)==0)
{
Console.WriteLine(“尚未收到任何内容!”);
}
如果(已接收。比较到(空)!=0)
{
Console.WriteLine(“连接到的设备:“+设备\名称.Last()+”读取“+已接收”);
}
}
抓住
{
Console.WriteLine(“设备未连接到:+device_names.Last());
}
最后
{
sp.Close();
}
我想检测这个设备连接 然后等待从中接收数据。这是我第一次这么做。
我现在很困惑(

您需要知道RFID设备何时发送数据。 如果在发送数据之前读取数据,则不会获得任何数据。
如果要对接收到的数据进行处理,请使用sp.read而不是sp.readLine,因为在read中需要指定要读取的字节数。

什么是“不工作”意思?端口已打开,但未接收到数据!