Java 如何在不关闭连接的情况下更改波特率?
我想连接到一个连接到串行端口(COM4)的设备,初始波特率为300,该设备可以通过命令将其波特率更改为9600,我的Java代码将此命令发送到设备,设备的波特率更改,但我不知道如何在不关闭连接的情况下更改程序中的波特率。连接关闭后,设备恢复到初始波特率 当连接打开时,有没有办法改变Java中的波特率 在我向设备发送“更改波特率”命令后,当以下代码执行时,设备失去连接。我认为这种方法只是为了初始化,而不是为了在通信过程中改变波特率。Java 如何在不关闭连接的情况下更改波特率?,java,serial-port,baud-rate,Java,Serial Port,Baud Rate,我想连接到一个连接到串行端口(COM4)的设备,初始波特率为300,该设备可以通过命令将其波特率更改为9600,我的Java代码将此命令发送到设备,设备的波特率更改,但我不知道如何在不关闭连接的情况下更改程序中的波特率。连接关闭后,设备恢复到初始波特率 当连接打开时,有没有办法改变Java中的波特率 在我向设备发送“更改波特率”命令后,当以下代码执行时,设备失去连接。我认为这种方法只是为了初始化,而不是为了在通信过程中改变波特率。 port.setSerialPortParams( 96
port.setSerialPortParams(
9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
连接到设备时,始终指定波特率。即使您不这样做,您使用的软件/API也会为您做到这一点。您的API很可能以默认波特率300连接到此设备。
波特率是为串行连接而不是为设备定义的。一旦未连接,就没有波特率。设备很可能感测到DTR或RTS。Windows将在端口打开时切换它们,并在端口关闭时恢复它们。因此,您有3个选项。我不确定哪一个会起作用——您可能必须全部试用,我没有带串行端口的windows box
... 你是如何关闭连接的?通常串行连接没有“打开”和“关闭”状态。没有办法“检测”某人已经离开(也许除了超时)。