【51单片机】Android端蓝牙开发,与蓝牙模块通信

目录

  • 说在前面
  • 说明
  • 关键代码
  • 结果

说在前面

  • 单片机:HC6800-ES,晶振12MHz
  • 蓝牙模块:BT08(兼容HC-06、HC-05)
  • 参考代码:这里

说明

  • 该App(不是参考代码那个的)功能为通过蓝牙接收单片机采集的温度传感器数据,同时可以通过蓝牙发送预设温度数据给单片机
  • 蓝牙通信代码仿照参考代码进行编写,不再提供github代码

关键代码

  • 主要是接收和发送数据,在参考的代码里面设置了数据格式,有些东西我们是不需要的,可以去掉。例如下面的:
    //读取文件我们不需要,去掉;
    //并且他还使用了一个Int型的数据来区分文件还是消息,不需要,可以去掉
    //这个int型的消息头一定要处理,不然出问题
    			while (isRead) { //死循环读取
                switch (in.readInt()) {
                    case FLAG_MSG: //读取短消息
                        String msg = in.readUTF();
                        notifyUI(Listener.MSG, "接收短消息:" + msg);
                        break;
                    case FLAG_FILE: //读取文件
                        Util.mkdirs(FILE_PATH);
                        String fileName = in.readUTF(); //文件名
                        long fileLen = in.readLong(); //文件长度
                        // 读取文件内容
                        long len = 0;
                        int r;
                        byte[] b = new byte[4 * 1024];
                        FileOutputStream out = new FileOutputStream(FILE_PATH + fileName);
                        notifyUI(Listener.MSG, "正在接收文件(" + fileName + "),请稍后...");
                        while ((r = in.read(b)) != -1) {
                            out.write(b, 0, r);
                            len += r;
                            if (len >= fileLen)
                                break;
                        }
                        notifyUI(Listener.MSG, "文件接收完成(存放在:" + FILE_PATH + ")");
                        break;
                }
    
  • 单片机部分(需要吗?)

结果

  • 连接蓝牙
    【51单片机】Android端蓝牙开发,与蓝牙模块通信_第1张图片
  • 获取温度
    【51单片机】Android端蓝牙开发,与蓝牙模块通信_第2张图片
  • 设置预设温度

END

你可能感兴趣的:(单片机)