-1

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

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

ln -s /dev/ttyACM0 /dev/ttyS99

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

我做的下一件事是尝试对我的程序做同样的事情,所以 Arduino 连接到 PC,软链接设置正确,列出的设备以及我在我的程序中的 PC 中的两个普通 COM 端口,和我尝试连接,但没有成功。

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

什么可能导致这种问题,我将如何解决它?

感谢您的帮助沃尔克

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

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

4

2 回答 2

0

如果您从 Ubuntu 软件包安装,您肯定会遇到问题。我自己首先尝试了这个,结果发现存在严重的问题。我建议下载 IDE arduino-1.0-src.tar.gz的最新版本。

你会注意到它的来源,我想你会更喜欢这样。或者您可以从 Git 获取存储库,您会在Building Arduino, Steps for First Time Setup中找到该信息以及如何构建 IDE 。除了 Ubuntu 发行版有缺陷之外,它也很老旧

于 2012-02-22T19:08:16.477 回答
0

您的符号链接/dev/ttyACM0是双重可疑的:

  • 断开+重新连接或关机+开机可能会改变开发者的数量。
  • ttyACM 通常指的是调制解调器,而不是像 Arduino 使用的普通 USB 串行转换器(至少是那些带有 FT232 芯片的转换器)。我期待像 ttyUSB0 这样的东西。对于那些你也不需要符号链接的人。
于 2012-02-24T23:46:47.517 回答