你好!我想将 PIC18F4550 与 Java 程序接口,并使其最初是跨平台的。我现在的 Java 只有一种方法是javacomm。但我希望它是 USB,因为现在并不是每台笔记本电脑都有 RS232 端口。您可以建议将 PIC 与 Java 接口的方式使其真正跨平台并避免为每个新操作系统编写驱动程序?
4 回答
首先是免责声明:我没有使用 PIC 和 Java 完成此操作,仅使用 PC 上带有 VB 的 AVR32B。
如果您在微控制器 USB 接口上实现 USB CDC 类设备并将其连接到您的 pc USB HOST,它将枚举并显示为新的 COM:端口。然后应用程序将其视为普通串行端口。我使用了标准的 Windows 驱动程序 USBSER.SYS。
我认为 microchip 为其 USB 外围设备提供示例源代码,以允许它在不同的设备类中运行。(我知道 Atmel 为 AVR32 系列做)
你为什么接受上面的答案?我同意@Ian 的评论。
PIC18F4550 及其朋友有板载 USB。这很容易,并且有很多示例可以将虚拟串行端口放入 PIC 固件中。另一个是 HID 设备,同样有很多 PIC 固件示例。
不要在布丁中添加更多硬件。
Arduino 的方法应该适合您的需求:带有硬件 UART 的微控制器与 FTDI USB-to-TTL 芯片相结合,然后使用rxtx访问“100+”平台上的串行端口。
这种方法似乎运作良好:在 Linux、Windows 和 OS X 下,与 arduino 进行通信和编程非常容易。
您需要使用 JNI 直接调用 WIN32API。我使用 JNA(JNI 包装器)库来简化实现,并制作了一个 DLL 以在 Visual C++ 2010 中导出更简单和直接的方法。您还可以使用与 OSX 等其他系统相同的接口创建其他库 (DLL/SO) 和Linux。