在Android上访问本机串口

2023-09-12移动开发问题
76

本文介绍了在Android上访问本机串口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

I want to give android application/service access to native serial port (UART RS-232). When I say native, I mean a real UART not a USB to serial dongle. I can see them from the terminal (connected to one of the 4 native serial port). It shows that kernel already takes care of the low level stuff.

# 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 文件.

I use Gingerbread. I have ported Android to my platform which has a S5PV210 processor on. I have full control of the kernel and the permissions. I already modified a lot of things (cellular, touchscreen, LCD panel size etc) including the init.rc file.

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

How can I talk to those devices from an Android APK? As you can see "s3c2410_serial1" is from user "radio" because the original system I took the Gingerbread source code from had a GPRS module on that serial port. It's easy to change in the init.rc. But that just prove we can access a native serial port on an Android system, at least.

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

The applications or services will not need to control over the baud rate or any fancy stuff to the APK. I just want to send and receive characters. The kernel can set a default baudrate and I'm happy with that. I don't even need control over RTS/CTS.

感谢任何提示.

推荐答案

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

I found a way. It seems to work for any kind of device because it just access the devices as a file. See the link android-serialport-api. It works for any kind of /dev/... In mhy case I had to install the NDK and go through all the hooplas to get it to work. There is a piece of code done in C where it sets the baud rate. In fact, the open and close are implemented in C the rest is all standard android java.

这篇关于在Android上访问本机串口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

从 Documents 目录存储和读取文件 iOS 5
Storing and reading files from Documents directory iOS 5(从 Documents 目录存储和读取文件 iOS 5)...
2024-08-12 移动开发问题
9

如何在使用 cocos2d 的 iphone 应用程序中使用 MYSQL 数据库连接?
How can i use MYSQL database connection in iphone application useing cocos2d?(如何在使用 cocos2d 的 iphone 应用程序中使用 MYSQL 数据库连接?)...
2024-08-12 移动开发问题
5

在 cocos2d 中平滑拖动一个 Sprite - iPhone
Smoothly drag a Sprite in cocos2d - iPhone(在 cocos2d 中平滑拖动一个 Sprite - iPhone)...
2024-08-12 移动开发问题
10

CCScrollView 滚动和触摸事件永远不会触发
CCScrollView scroll and touch events never firing(CCScrollView 滚动和触摸事件永远不会触发)...
2024-08-12 移动开发问题
1

使用 OpenGLES 的抗锯齿去除绳索的锯齿状边缘
removing jagged edges of my ropes using antialiasing of OpenGLES(使用 OpenGLES 的抗锯齿去除绳索的锯齿状边缘)...
2024-08-12 移动开发问题
34

cocos2d 在场景之间移动
cocos2d Moving between scene(cocos2d 在场景之间移动)...
2024-08-12 移动开发问题
2