Android 基于Google API的串口开发

本文介绍了一种基于谷歌提供的串口开发包实现的串口通信技术应用案例。该案例通过一个简单的读取线程展示了如何从单片机接收14字节的数据并将其转换为十六进制形式显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于公司项目的需要与单片机交互,所以在技术上需要使用串口通信技术。幸好,谷歌有提供串口的开发包给我们。这里改天再贴,现在我只简单的贴上代码。改天有空我在把内容完善一下。底下这段代码的意思是通过串口读取字节数据,并以两十六进制数表示一个字节,每次读取14个字节进行显示,这里还有很大的漏洞,没有涉及到通信包的解包校验,这里只是单纯的展示。

private class ReadThread extends Thread {
    @Override
    public void run() {
        super.run();
        while (!isInterrupted()) {
            int size;
            try {
                byte[] buffer = new byte[14];
                if (mInputStream == null)
                    break;
                if (mInputStream.available() > 0) {
                    sb = new StringBuilder();
                    DataInputStream din = new DataInputStream(mInputStream);
                    size = din.read(buffer);
                    if (size > 0) {
                        //此线程负责接受数据
                        String res = new String(buffer, 0, size, "GBK");
                        byte[] bytes = res.getBytes("GBK");
                        if (bytes.length == 14) {
                            String s = SerialDataUtils.bytesToHexString(bytes);
                            sb.append(s);
                            sb.append("\n");
                        }
                    }
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            tvreceive.setText(sb);
                        }
                    });
                }
                try {
                    Thread.sleep(10);
                } catch (Exception e) {
                    break;
                }
            } catch (IOException e) {
                e.printStackTrace();
                break;
            }

        }
        Log.d(ReadThread.this.getId() + ":", "readthread quit");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的兄弟叫顺溜2011

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值