我有一个通过USB和虚拟端口与计算机通信的接口。基于Silicon Labs的C8051F320芯片的接口。 我有两个程序,一个用Java写(我尝试修改),第二个用QT。一切都可以在WIN7和WIN8上正常运行,但是Java软件在WIN10上无法正常工作。
在WIN7和WIN8上一切正常,但Java软件在WIN10上不工作。 我在Java项目中使用jSerialComm库。 我也尝试使用RXTX库。程序在WIN7上可以正常运行,但在Win10上却为我提供了“使用中端口异常”。未知的应用程序”。 我的COM端口显示在DeviceManager上,并且驱动程序已正确安装(波特率9600,数据位8,停止位1…),但是我无法在Java programm中打开端口。
我通过'mode'命令检查了Windows cmd上的COM端口配置。它给我奇怪的结果,不同于 我从DeviceManager获取:
Baud: 8453999
Parity: 8453999
Data Bits: 188
Stop Bits: 188
Timeout: OFF
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: OFF
RTS circuit: ON
我无法通过'mode'命令更改此端口的波特率参数。
我将VirtualBox与WIN7一起使用来检查我的界面。 当我从VM连接到接口并下次断开连接时,WIN10下我的COM端口的设置会更改。现在,“模式”命令为我提供了
Baud: 9600
Parity: None
Data Bits: 8
Stop Bits: 1
Timeout: OFF
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: OFF
RTS circuit: ON
之后,Java程序运行良好。不幸的是,经过几次连接和断开与USB接口的连接后,问题又回来了。 我不知道这是Java还是WIN10问题。是在打开Java之前通过Java设置COM端口属性的方法吗?