主题 : JNI接口设计实现Android串口通讯 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 54108
精华: 0
发帖: 27
金钱: 135 两
威望: 27 点
贡献值: 0 点
综合积分: 54 分
注册时间: 2011-08-24
最后登录: 2012-01-13
楼主  发表于: 2011-10-13 15:07

 JNI接口设计实现Android串口通讯

管理提醒: 本帖被 xoom 执行取消精华操作(2011-10-19)
*********************************************************************
第二部分 调试串口程序
*********************************************************************
1•下载串口例程

在以下地址下载http://code.google.com/p/android-serialport-api/,或者网上搜索android-serialport-api找到串口实例程序。解压放在NDK的samples目录下,例如我的E:\android-ndk-r6-windows\android-ndk-r6\samples

2•编辑C文件

•使用UltraEdit编辑jni文件夹下的SarialPort.c文件。

•将文件中fd = i(path_utf, O_RDWR | O_DIRECT | O_SYNC);
修改为 fd = i(path_utf, O_RDWR | O_SYNC)

•选择文件>转换>DOS转UNIX,保存退出UltraEdit

3•NDK编译生成so文件

•打开cygwin
•进入要编译的程序目录,然后运行ndk-build编译程序

4•导入eclipse生成apk文件

•导入工程文件
file > new > other > Android > AndroidProject > next >...from exiting...
•编译工程生成apk文件

5•将apk文件安装到6410开发板上

•打开windows cmd 终端, 插上USB线,输入adb shell命令
•进入apk文件所在目录下
•输入adb install SarialProt.apk安装apk文件到Android系统

6•调用安装上的串口测试文件,会发现没有串口的读写权限。所以,下一步。

7•修改init.rc文件

•进入根目录
•使用vi打开init.rc文件
•在文件末尾添加修改权限命令 chmod 777 Searilaport0
(名称视使用串口而定,一定要在创建设备文件之后添加)
•保存修改,然后reboot。

8•至此,串口的收发数据功能就都能使用了。

9•打开eclipse使用JAVA调用JNI接口提供的函数,便可实现Android系统中对串口进行操作了。
级别: 圣骑士
UID: 44407
精华: 0
发帖: 388
金钱: 1945 两
威望: 389 点
贡献值: 0 点
综合积分: 776 分
注册时间: 2011-04-25
最后登录: 2014-08-25
1楼  发表于: 2011-10-13 16:30
請問您這個Android串口通讯,可以對csr 的bluetooth下bccmd命令 ?
级别: 新手上路
UID: 54108
精华: 0
发帖: 27
金钱: 135 两
威望: 27 点
贡献值: 0 点
综合积分: 54 分
注册时间: 2011-08-24
最后登录: 2012-01-13
2楼  发表于: 2011-10-13 16:53
Google例程,仅仅实现在Android下访问串口设备提供了一个方法。不过有点小问题,需要修改后重新编译。上述说明既是。
收发数据请参考例程中的JNI函数调用。具体功能看你怎么设计,怎么使用。
级别: 圣骑士
UID: 44407
精华: 0
发帖: 388
金钱: 1945 两
威望: 389 点
贡献值: 0 点
综合积分: 776 分
注册时间: 2011-04-25
最后登录: 2014-08-25
3楼  发表于: 2011-10-13 16:59
我 的 device 走 uart...在linux /windows 可以正常驅動
但是android 就不知道...
參考的這篇沒有下文.....
http://www.arm9home.net/simple/index.php?t9960.html
级别: 侠客
UID: 16811
精华: 0
发帖: 112
金钱: 560 两
威望: 112 点
贡献值: 0 点
综合积分: 224 分
注册时间: 2010-03-22
最后登录: 2018-06-27
4楼  发表于: 2011-10-14 13:28
俺的产品已经放弃了用ANDROID了,还是用QT开发了
级别: 圣骑士
UID: 44407
精华: 0
发帖: 388
金钱: 1945 两
威望: 389 点
贡献值: 0 点
综合积分: 776 分
注册时间: 2011-04-25
最后登录: 2014-08-25
5楼  发表于: 2011-10-18 17:45
已經OK,但是是使用csr 的libsynergy_com.so
我在想是否可以自己建一個?
级别: 新手上路
UID: 59267
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2011-11-22
最后登录: 2012-10-29
6楼  发表于: 2011-11-28 20:21
SerialPort_1.1.apk 是这个文件么 不是一个工程么
级别: 新手上路
UID: 56405
精华: 0
发帖: 49
金钱: 245 两
威望: 49 点
贡献值: 0 点
综合积分: 98 分
注册时间: 2011-10-06
最后登录: 2013-11-11
7楼  发表于: 2011-12-09 10:12
好资料,收藏;
级别: 新手上路
UID: 56552
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2011-10-09
最后登录: 2012-11-04
8楼  发表于: 2012-03-12 08:51
kkkkkkkkkkkkkk
级别: 新手上路
UID: 68616
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
贡献值: 0 点
综合积分: 6 分
注册时间: 2012-04-24
最后登录: 2012-04-27
9楼  发表于: 2012-04-24 22:44
请问各位大神,在tiny6410开发板上跑android2.3系统,然后我有一个西门子gprs模块,然后想用这个模块来收发短信,请问是自己对串口读写来操作AT指令,还是能有其他的办法实现呢。