在android中使用串口RS-232?

我想通过使用Android设备上的JavaComm API类的串行端口发送信号,下面是我的想法:

1 – Android设备将是:具有Android 2.2和USB主机模式的爱可视3.2。

2-包括我的Android应用程序的RxTx lib包。 并使用Android NDK包含RxTx本地代码。

3-一个短的电缆,这是USB – >串行。

你能向我解释我可能面临的问题吗?

Solutions Collecting From Web of "在android中使用串口RS-232?"

我只是将JavaCOMM(GNU RXTX)库移植到Android。 这里是链接http://v-lad.org/projects/gnu.io.android/

您仍然可能需要重新编译内核,并可能为您的环境重新编译共享库。 但这应该让你开始。

如上所述,您需要为任何USB < – >串行设备提供设备驱动程序。 许多这些设备使用Prolific PL2303芯片:

http://www.qbik.ch/usb/devices/showdr.php?id=175

这是linux内核所支持的,而且已经有很长一段时间了。 我已经使用这个,它工作正常,所以我会build议你坚持与USB < – >使用这个芯片的串行设备。

除此之外,用udev这些设备通常显示为/ dev / ttyUSB#。 Android如何发生,我不知道,所以你需要弄清楚。

最后,您将需要构buildRxTx本机代码。 这个代码非常笨拙 – 我在构build一个相当现代化的Angstrom时遇到了问题,而且我也没有尝试进行交叉编译。

与普通PC不同的是,大多数Android设备的内核都有最less的编译模块。 您需要使用已启用的驱动程序将USB重新编译到内核以串行转换器。 你运气取决于你使用的特定设备。 很多制造商违反了GPL,没有提供内核源代码。 像Droid 2这样的一些制造商需要签名的内核。 这使得无法在设备上加载定制的内核。

而且,尽pipe许多设备具有USB主机模式,但您必须跳过这些环路来切换设备模式。 例如Motrola droid需要一个特殊的encryption狗插入USB端口,然后开机进入主机模式。

这里有一些链接可以解释你需要做什么:

  1. “更多关于Droid主机模式,” http://www.tombom.co.uk/blog/?p=134

  2. “Motorola Droid上的USB Host模式”, http://www.tombom.co.uk/blog/ ?p = 124。

是的,在Android上使用手机端的串口设备确实是一团糟。 问题在于AOS上的各种设备没有logging,很less与标准的Linux一致。 因此,你永远不知道你在和谁谈话,有些设备,抽象层(HAL,UART,PCI等)。 这里是一个关于如何从外部USB连接的PC与串行设备(调制解调器)通信的教程。

在任何情况下,如果您的手机支持USB主机模式,则必须使用另一种方式到达您的串行端口/设备。 毕竟,向后兼容性通常确保您的USB电缆支持某种传真,电话或外部调制解调器。 也有tehtering其中可能还包含一些虚拟串行设备…

这里有一些这方面的教程。

PS。 这样的程序(如Vlad的)和应用程序(如serial-api)的主要问题是,他们对设备/端口名称和达到(读/写)这些…

可能不是你正在寻找的东西,但这个指导可能会指向你正确的方向

最大的问题可能是USB->串口适配器:

您需要USB串行驱动程序的设备驱动程序,这可能不包含在android内核中。

另一个select是使用类似libusb(可能必须移植到android)以及基于libusb的用户空间驱动程序。

我已经做到了 您需要:1.根据设备。

  1. 为您即将使用的特定USB chiset创build您自己的模块: 为Android构build内核模块

  2. 我build议使用移植的usb-serial-for-android库,它已经实现了PL2303驱动程序: https : //code.google.com/r/felixhaedicke-usb-serial-for-android

你需要做的第一件事是为了获得对串行端口的读/写访问权而将平板电脑root。

完成之后,请查看Android串行端口API 。 你可以下载源代码,看看它是如何实现的。

它有一个本地lib,获取一个文件描述符到串口,然后你可以读写端口。 通常,应用程序可能不会列出平板电脑上的所有可用端口。 要查看设备连接的位置,请使用HostMode将其插入到USB中,并在模拟器中键入“dmesg | tail”。 它应该给你关于设备的细节,以及连接的端口。

我也使用了一个爱可视平板电脑,我的设备连接到“/ dev / ttyACM0”。

祝你好运!