6

我想让 android 应用程序/服务访问本机串行端口(UART RS-232)。当我说本机时,我指的是真正的 UART,而不是 USB 转串行加密狗。我可以从终端看到它们(连接到 4 个本机串行端口之一)。它表明内核已经处理了低级的东西。

# ls -l /dev 
crw-rw-rw- system   system   204,  67 2010-01-01 07:00 s3c2410_serial3
crw-rw-rw- system   system   204,  66 2010-01-01 07:00 s3c2410_serial2
crw-rw-rw- system   radio    204,  65 2010-01-01 07:00 s3c2410_serial1
crw-rw-rw- system   system   204,  64 2010-01-01 07:00 s3c2410_serial0 

我用姜饼。我已将 Android 移植到具有 S5PV210 处理器的平台上。我完全控制内核和权限。我已经修改了很多东西(蜂窝、触摸屏、LCD 面板尺寸等),包括 init.rc 文件。

如何通过 Android APK 与这些设备通信?如您所见,“s3c2410_serial1”来自用户“radio”,因为我获取 Gingerbread 源代码的原始系统在该串行端口上有一个 GPRS 模块。在 init.rc 中很容易更改。但这只是证明我们至少可以访问 Android 系统上的本机串行端口。

应用程序或服务不需要控制 APK 的波特率或任何花哨的东西。我只想发送和接收字符。内核可以设置默认波特率,我对此很满意。我什至不需要控制 RTS/CTS。

任何提示表示赞赏。

4

1 回答 1

4

我找到了一个方法。它似乎适用于任何类型的设备,因为它只是将设备作为文件访问。请参阅链接android-serialport-api。它适用于任何类型的 /dev/... 在我的情况下,我必须安装 NDK 并通过所有的 hooplas 才能让它工作。在 C 语言中有一段代码用于设置波特率。其实open和close都是用C实现的,剩下的都是标准的android java。

于 2012-10-16T02:00:26.353 回答