SerialPort port.open"端口'COM2'不存在."

Jak*_*obJ 10 .net c#

我有一个很大的问题 SerialPort.Open();

我正在与USB虚拟COM端口(cdc)进行通信,它被列为COM2.

它在TeraTerm/hyperTerminal等中工作正常.但是当我尝试在C#中打开端口时,它给了我异常The port 'COM2' does not exist.

我使用该SerialPort.GetPortNames()函数获取端口名称,并且在调试时它看起来很好.

我试图将名称设置为硬编码,但没有运气.

现在真的很奇怪,它在某些PC上工作正常,而在其他PC上则失败了.在某些PC上它会一直失败,而在其他PC上它会失败10%的时间.

更奇怪的是它取决于所使用的USB端口,一些端口工作正常,其他端口失败(在同一台PC上!).

请问有人帮帮我吗?

T.E*_*.D. 6

我之前使用过虚拟串口.通常,它们不能作为"COMX:"访问某些Windows API调用,您必须完全指定它们.这可能就是这种情况.尝试使用串行设备的Windows设备命名空间路径.例如:"\\.\ COM2"

我发现调试有用的另一件事是在给定的串口上打开Hyperterm.

最后一件事:为了在没有所有硬件的系统上调试逻辑,我找到了这个名为com0com的精彩程序.它是一个GPL Sourceforge项目,可在您的系统上创建绑定的虚拟COM端口对.无论写入哪一个都可以从另一个读取,反之亦然.你可以编写一个模拟器并给它一个端口,或者只打开它上面的Hyperterm.然后将另一个给你的程序.无需电缆或其他硬件进行测试.