如何在不关闭连接的情况下更改波特率?

2023-12-19

我想连接到一个连接到初始波特率300的串行端口(COM4)的设备,该设备可以使用命令将其波特率更改为9600,我的Java代码将此命令发送到设备并更改设备的波特率,但我不知道如何在不关闭连接的情况下更改程序中的波特率。当连接关闭时,设备恢复到初始波特率。

有没有办法在连接打开时改变Java中的波特率?

在我向设备发送“更改波特率”命令后,执行以下代码时设备丢失连接。我认为这个方法只是用于初始化,而不是用于在通信过程中改变波特率。

port.setSerialPortParams(
    9600,
    SerialPort.DATABITS_8,
    SerialPort.STOPBITS_1,
    SerialPort.PARITY_NONE);

设备很可能检测到 DTR 或 RTS。 Windows 将在端口打开时切换它们,并在端口关闭时恢复它们。因此,您有 3 个选择。我不确定哪一个可以工作——你可能必须全部尝试一下,我没有带串口的 Windows 盒子。

  1. 使用不同的Java库,例如librxtx的“gnu.io.RXTXPort”,它可以在不关闭连接的情况下更改波特率。

  2. 尝试使用Windows“模式”命令:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/mode.mspx http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/mode.mspx。 尝试“打开”和“关闭”RTS 和 DSR,看看是否有任何设置有帮助。请注意,如果成功,设备将永远不会重置,即使您退出 java 程序也是如此。您必须再次调用“mode”来重置设备。

  3. 使用特殊的串行电缆,该电缆不传递 DTR 信号。这些被称为“3 线”(仅限 RX 和 TX)或“5 线”(RX/TX + RTS/CTS)RS232 电缆,并且很容易制作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不关闭连接的情况下更改波特率? 的相关文章

随机推荐

  • 以编程方式一步提取 tar.gz(在使用 7-Zip 的 Windows 上)

    Problem 我希望能够一步提取 tar gz 文件 这让我的问题almost与此相同 tar gz 的堆栈溢出问题 https stackoverflow com questions 651018 opening a tar gz fi
  • scala 的鼠标事件有效吗?如何?

    我正在尝试在 scala 中创建类似链接的标签 但没有鼠标事件对我有用 他们应该如何工作 class Hyperlink extends Label text hyperlink reactions case MouseClicked gt
  • 如果我不关闭 StardandInput,C# 重定向其他控制台应用程序 StandardOutput 会失败

    我的控制台应用程序遇到了一个棘手的问题 我试图从中重定向 StandardInput StandardOutput 和 StandardError 我已经为其他控制台应用程序找到了一个可行的解决方案 这对我来说并不是什么新鲜事 但这个应用程
  • 有序列表索引

    有什么方法可以获取a的编号 索引 li有序列表中的标签 我正在尝试获取侧面显示的数字 列表编号 我知道传统的方法是使用存储行号的 id 但这意味着如果在中间添加一行 则必须编辑大量 id 尽管我为此开发了一种算法 但它的效率并不高 我正在寻
  • Java中的2d ArrayList添加数据

    我在家庭作业上几乎不需要帮助 我必须创建一个 10 x 10ArrayList 不是数组 这就是我所拥有的 我只需要有关如何执行 for 循环将日期添加到 2D 的提示ArrayList 顺便说一下 这是为了放置成绩数据 从 100 到 8
  • 提取 Javascript 数字的指数和尾数

    有没有一种相当快速的方法可以从 JavaScript 中的数字中提取指数和尾数 AFAIK 没有办法获取 Javascript 中数字后面的位 这让我觉得我正在研究一个因式分解问题 找到m and n这样2 n m k对于给定的k 由于整数
  • || 到底是什么?意思是?

    return empty neededRole strcasecmp role admin 0 strcasecmp role neededRole 0 到底是什么 在这个声明中是什么意思 有人可以帮我把这个翻译成英文吗 我保证我已经用谷歌
  • 32 位应用程序未更新 64 位注册表项

    C 中提到的路径中的注册表项未更新 string path Software Microsoft Windows NT CurrentVersion Windows RegistryKey myKey Microsoft Win32 Reg
  • 绑定不适用于在 XAML 中创建的 DependencyObject

    我尝试使用自定义类在 XAML 中传递多个 CommandParameters 我创建了一个名为值命令参数继承自依赖对象并有两个依赖属性 我们称它们为Value1 and Value2对于这个例子 应该调用命令并传递该对象的按钮如下所示
  • 核心数据在后台保存对象问题

    简而言之 我想要做的是使用后台队列将从 Web 服务提取的 JSON 对象保存到 Core Data Sqlite3 数据库 保存发生在我通过 GCD 创建的序列化后台队列上 并保存到为该后台队列创建的 NSManagedObjectCon
  • Python:包中的“私有”模块

    我有一个包裹mypack带模块mod a and mod b在里面 我想要包裹本身mod a自由进口 import mypack import mypack mod a 不过 我想保留mod b专供mypack 那是因为它的存在只是为了组织
  • 如何在应用程序中使用 iPhone 铃声

    我想在我的应用程序中使用 iPhone 的铃声 这可能吗 请帮助我解决这一点 Thanks 您无法以编程方式使用或更改可用的铃声 很遗憾地说 苹果公司实在是太保守了
  • 添加 TabBarController 作为视图的子视图

    当我的应用程序启动时 我正在加载启动屏幕 然后我想加载一个TabBarController 它是ViewControllers 但是 我的 TabBarController 窗口无法缩放到屏幕尺寸 底部的 TabBar 的 3 4 可能被切
  • 用Windows Forms数据控件和DataTable实现图库式的显示?

    我有一个datatable看起来像下面这样 Room Cook Waiter BG Image 201 Joe Jim Green png 202 Jack Mary Red png 203 Jet Mark Yellow png 204
  • Google 登录 - “access_token”与“id_token”与“代码”

    在我们的网站中 我们过去在使用 Google Sign In 登录人员时使用 access token 首先 我们将用户重定向到 google 用户将 access token 带给我们 我们验证该令牌以确保该用户是实际的 Google 用
  • 无法让 ActiveMQ 重新发送我的消息

    我有一个用 Java 编写的单线程 ActiveMQ 使用者 我想做的就是从队列中接收 一条消息 尝试将其发送到网络服务 如果成功则确认 它 如果 Web 服务调用失败 我希望消息保留在队列中 并在超时后重新发送 除了重新发送部分之外 它或
  • 离开屏幕保护程序或锁定计算机后程序挂起

    我们的程序运行良好 直到有人锁定计算机或弹出屏幕保护程序 但不是 ctrl alt delete 一旦计算机解锁 屏幕保护程序关闭 应用程序就会停止绘制除标题栏之外的所有内容 并停止响应输入 它显示一个大部分为白色的窗口 无法移动或关闭 应
  • SignalR 来自客户端的多个并发调用

    我希望能够做这样的事情 IHubProxy myHubProxy var t1 Task Run gt myHubProxy Invoke
  • Python 字符串替换错误

    我有一个 python 脚本 它不断返回以下错误 类型错误 replace 至少需要 2 个参数 给定 1 个 我一生都无法弄清楚是什么原因造成的 这是我的代码的一部分 inHandler open inFile2 r outHandler
  • 如何在不关闭连接的情况下更改波特率?

    我想连接到一个连接到初始波特率300的串行端口 COM4 的设备 该设备可以使用命令将其波特率更改为9600 我的Java代码将此命令发送到设备并更改设备的波特率 但我不知道如何在不关闭连接的情况下更改程序中的波特率 当连接关闭时 设备恢复