关闭

Android串口通讯开发

标签: Android-串口
221人阅读 评论(2) 收藏 举报
分类:

新来了一家公司,这个公司要求在基于安卓4.1的开发板上做出串口通讯功能,刚开始接触的时候倍感迷茫,平时也没有接触过这个东西,
遂查了一些相关资料,现在整理如下:

Android通讯介绍

对于串口编程,我们只需对串口进行一系列的设置,然后打开串口,这些操作我们可以参考串口调试助手的源码进行学习。所以在Android方面我们的任务比较简单。

下面是一些资料

Google串口开源项目见:https://code.google.com/p/android-serialport-api/
在这个资料中是Google开源的一些示例,通过读取里面的代码基本上能够做到简单的开发了
这个是串口开发的jar包:https://pan.baidu.com/s/1bM2osm

在串口开发中我们所要做的内容

我们在开发过程中要做的也无非是串口的参数传入,串口的打开,关闭,串口的数据接收与发送

关于项目的配置

1. 我们首先将上述资源添加到libs目录中,并加载资源
2. 然后初始化串口
3. 开启线程进行读取和发送输入输出流
4. 对串口信息进行响应

串口初始化

public void initCOM() {
            System.out.println("初始化串口成功+++");
            //baud,N,8,1  115200
            try {
                mSerialPort = new android_serialport_api.SerialPort(new File("/dev/ttyS5"),
                        9600);
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            //串口读取数据流
            mInputStream = mSerialPort.getInputStream();
            //串口发送数据流
            mOutputStream = mSerialPort.getOutputStream();
        }

上述方法中SerialPort参数为串口号,与波特率的设置,通过传入这两个参数就能成功的配置串口信息,并进行初始化。

串口接收数据

private class ReceiveThread extends Thread {
            @Override
            public void run() {
                super.run();
                while (isRunning) {
                    try {
                        byte[] bytes = new byte[64];
                        int len = mInputStream.read(bytes);
                        if (len > 0) {
                            String data = new String(bytes, 0, len, "gb2312");
                            Message message = new Message();
                            message.what = 5;
                            message.obj = data;
                            mHandler.sendMessage(message);
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

这个就比较简单明了了,通过开启一个子线程不停的循环读取信息,如果读取到就发送数据,进行处理。

串口发送数据

public void sendData() {
            String data = new String("我是要发送的数据");
            try {
                mOutputStream.write(data.getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

此为发送数据的相关列子

这就是Android串口相关的开发总结,如有不明白之处欢迎留言和指正

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2104次
    • 积分:86
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:5篇
    • 译文:0篇
    • 评论:3条
    最新评论