java - Linux下的Arduino(RXTX)? - 适用于 Windows

标签 java linux arduino rxtx

我目前正在使用 Java 开发一个程序来与 Arduino 模块交互。现在在Windows中,到目前为止它运行得很好(我收到了我所期望的;我可以处理数据),但在Linux中(在我的例子中是Ubuntu);恰恰相反。我安装了 Arduino 和 rxtx-java 软件包。

当我尝试使用 Arduino 程序连接到 Arduino 板时,我必须在 ACM 模块上设置到某些串行或 USB 模块的软链接(soft link)。例如,

ln -s /dev/ttyACM0 /dev/ttyS99

否则它甚至不会出现在Arduino程序的列表中。所以我当时所做的就是启动串行监视器工具(Ctrl + Shift + M)并向其发送我的启动序列以等待答案。它在那里工作没有问题(它是二进制数据,所以我无法验证它是否正确,但我至少得到了答案)。

我做的下一件事是尝试对我的程序执行相同的操作,因此将 Arduino 连接到 PC,软链接(soft link)设置正确,列出了设备以及我的程序中 PC 中的两个正常 COM 端口,我尝试连接,但没有成功。

没有错误,没有什么,只是董事会没有答复。我等了几分钟后,它仍然没有做任何事情,所以我断开了它与 PC 的连接,然后我得到了一个零字节数组作为答案。

什么可能导致此类问题以及如何解决它?

感谢您的帮助 沃尔克

PS:该程序是一个包含所有库/依赖项的 jar 文件

编辑: 硬件是 Arduino UNO Board Model R3,在 Windows 上我使用 Arduino 1.0 对其进行编程

最佳答案

您到 /dev/ttyACM0 的符号链接(symbolic link)是双重可疑的:

  • 断开+重新连接或关闭+打开可能会更改设备的编号。
  • ttyACM 通常指调制解调器,而不是像 Arduino 使用的普通 USB 串行转换器(至少是那些带有 FT232 芯片的转换器)。我期望像 ttyUSB0 这样的东西。对于那些你也不需要符号链接(symbolic link)。

关于java - Linux下的Arduino(RXTX)? - 适用于 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398045/

相关文章:

java - Jenkins发送邮件中的身份验证错误

c - 在 C 中使用 popen() 和 minicom 会产生垃圾值

c++ - 一次移动多个无符号字符以便它们从一个字符流向另一个字符的最快方法是什么?

java - Rectangle2D.contains() 不起作用?

java - hibernate 困惑。 ga、GA 和 Final Releases 之间有什么区别?兼容性?存储库?

java - 更新 JFrame 内容

linux - sed 匹配以 * 和//开头的行

c++ - 与 BLDC Controller 通信时,串行读取 () 以错误号 11 终止

django - [FreeTDS][SQL Server]用户登录失败

c - Arduino乘法错误,+ve * +ve变成-ve