C# USB GPS假装它是一个串行端口

C# USB GPS假装它是一个串行端口,c#,gps,usb,serial-port,C#,Gps,Usb,Serial Port,我正试图从USB GPS设备PL-2303中获取数据。USB到串行网桥控制器 所以我试过这个 sp = new SerialPort(portname, 9600, System.IO.Ports.Parity.None, 8, StopBits.One); sp.Open(); while (sp.IsOpen) { string serialPortData = sp.ReadLine(); } 连接已打开-但未收到任何数据。你认为这是因为我试图通过打开一个串口连接到一个USB设备吗?或者

我正试图从USB GPS设备PL-2303中获取数据。USB到串行网桥控制器

所以我试过这个

sp = new SerialPort(portname, 9600, System.IO.Ports.Parity.None, 8, StopBits.One);
sp.Open();
while (sp.IsOpen)
{
string serialPortData = sp.ReadLine();
}

连接已打开-但未收到任何数据。你认为这是因为我试图通过打开一个串口连接到一个USB设备吗?或者你认为这是因为没有收到GPS数据吗?

你可能有错误的波特率。试试。

Hmm,在它真正打开之前不必先调用
sp.Open()
?你忘了打开握手。将RtsEnable和DtrEnable属性设置为true。对不起,我猜我在文本片段中忽略了open,但它在代码中…@Hans:为什么?NMEA标准规定应关闭握手。他们在这些产品上使用的通用USB端口仿真器驱动程序不能依赖于了解任何航海标准。是的,波特率错误,4800在没有握手的情况下工作,奇怪的是,设备驱动程序说它是9600|