Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
利用USB在PC上实现PIC单片机与Java的接口_Java_Usb_Communication_Microcontroller_Pic - Fatal编程技术网

利用USB在PC上实现PIC单片机与Java的接口

利用USB在PC上实现PIC单片机与Java的接口,java,usb,communication,microcontroller,pic,Java,Usb,Communication,Microcontroller,Pic,嗨! 我想将PIC18F4550与Java程序接口,并使其最初跨平台。 我现在只知道Java有一种方法。但我希望它是USB的,因为现在不是每台笔记本电脑都有RS232端口。 您可以建议哪些方法将PIC与Java接口,以使其真正跨平台,并避免为每个新操作系统编写驱动程序?首先,免责声明:我没有使用PIC和Java进行此操作,只是在pc上使用带有VB的AVR32B 如果在微控制器USB接口上实现USB CDC类设备,并将其连接到pc USB主机,它将枚举并显示为新的COM:端口。然后应用程序将其视为

嗨! 我想将PIC18F4550与Java程序接口,并使其最初跨平台。 我现在只知道Java有一种方法。但我希望它是USB的,因为现在不是每台笔记本电脑都有RS232端口。
您可以建议哪些方法将PIC与Java接口,以使其真正跨平台,并避免为每个新操作系统编写驱动程序?

首先,免责声明:我没有使用PIC和Java进行此操作,只是在pc上使用带有VB的AVR32B

如果在微控制器USB接口上实现USB CDC类设备,并将其连接到pc USB主机,它将枚举并显示为新的COM:端口。然后应用程序将其视为普通串行端口。我使用了标准的windows驱动程序USBSER.SYS


我认为微芯片为他们的USB外设提供了示例源代码,使其能够在不同的设备类别中运行。(我知道Atmel do适用于AVR32系列)

Arduino的方法应该适合您的需要:一个带有硬件UART和FTDI USB-to-TTL芯片的微控制器,然后用于访问“100+”平台上产生的串行端口


这种方法似乎很有效:在Linux、Windows和OS X下,与arduino进行通信和编程非常容易。

您为什么接受上述答案?我同意@Ian的评论

PIC18F4550和它的朋友有板载USB。在PIC固件中放置虚拟串行端口很容易,而且有很多示例。另一个是HID设备,同样有很多PIC固件示例


不要再往布丁里加五金了

您需要使用JNI直接调用WIN32API。我使用JNA(JNI包装器)库来实现简单化,并在Visual C++ 2010中导出了一个DLL,以导出更简单和更直接的方法。您还可以使用与其他系统(如OSX和Linux)相同的接口创建其他库(DLL/SO)。

如果您知道,请告诉我,因为我过去也遇到过类似的问题。我已经求助于MPLab ICD2(我认为)。+1个很好的答案-你应该总是尽可能多地关注软件堆栈上的接口,而不是试图明确地在USB级别工作。这将是一个浪费金钱/电路板的不动产,因为这里使用的PIC有自己的内置USB 2.0控制器。非常有趣的项目!从没听说过@伊恩:同意。尽管我觉得我应该指出,我将arduino的方法描述为这种设置的一个例子,而不是@melco man可以遵循的公式。我同意@Ian和@freespace的观点,这不是解决问题的方法,这次是用那个处理器。