2 qq 15542867 qq_15542867 于 2016.09.24 16:31 提问

蓝牙串口接收的数据断流

我网上做一个改好的蓝牙串口助手,改成自己用的,但是下位机发送过来的数据到上位机的时候,根本不是按照下位机来写的。
下位机: sprintf((char*)sendbuf2,"%s%d.%d,%s%s%d.%d,%s%d%s\n",
"Tem:",DHT11_GetTem()/256, DHT11_GetTem()%256, "——","Hum",
DHT11_GetHum()/256, DHT11_GetHum()%256,"MQ-5:",adcx2,"v");
u3_printf("%s",sendbuf2);

    }
    安卓蓝牙串口接收的如图![图片说明](https://img-ask.csdn.net/upload/201609/24/1474705668_913769.png)![图片说明](https://img-ask.csdn.net/upload/201609/24/1474705678_970311.png)
    求解决,谢谢

1个回答

wangmeng951011
wangmeng951011   2016.09.24 18:51

这个你在网上查找我估计不好查,因为基本上串口上来的都会断掉,这让人很尴尬!
不要想着用什么校验来确定文件尾部。

我给你说一个方法,底层发过来几个字节,用for循环接收这么多次,就可以解决这个问题。

希望我的回答对你有帮助!

qq_15542867
qq_15542867 回复henry-hacker: 不太得吧,我给你看下串口助手里面的程序。如下 case MESSAGE_READ: byte[] readBuf = (byte[]) msg.obj; // construct a string from the valid bytes in the buffer String readMessage = new String(readBuf, 0, msg.arg1); mConversationArrayAdapter.add(mConnectedDeviceName+": " + readMessage); break;
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
经典蓝牙串口收发数据
蓝牙
安卓日记——蓝牙串口返回数据分段问题
起因:POS机通过串口发送数据过来,卡信息数据大小为205个字节。但是分成100+105  100+50+100等分段情况发过来   解决思路:接到第一份数据的时候等待0.5秒  , 之后完整的数据应该会全部发过来。   byte[] bytTemp = new byte[1024];      int nRetCount = 0;      if(mInputStre
.net windows CE蓝牙串口控制蓝牙设备发送接收数据
使用C#编写的windows CE蓝牙串口控制蓝牙设备发送接收数据。本人是使用windowsCE 手持机控制蓝牙扭力扳手。
MTK 解决蓝牙串口MMI不能收发数据的问题
MTK 解决蓝牙串口MMI不能收发数据的问题
CC2541蓝牙串口乱码解决
在CC2541蓝牙模块调试过程中,用到了串口模块,但是在串口输出时偶尔会出现乱码,大部分情况数据是正常的。最后通过TI的官方论坛和相关文档,查找到了原因: 原来CC2541在出厂默认情况下,当CC2541的射频工作时,即蓝牙发送或接收数据时,CPU会停机(halt),这是为了减小射频工作时的峰值电流。所以在固件设计时,要进行相应设置,把CC2541在射频工作时CPU halt的功能去掉。可以在初始
Android蓝牙通信——安卓蓝牙obtainMessage数据传输部分数据丢失乱序问题
根据google的demo写的蓝牙通信程序,在接收蓝牙的信息时,发现收到的数据有部分丢失和乱序。 在电脑上串口上查看蓝牙模块数据传输结果正常, 但是当利用蓝牙传数据的时候,上位机端(安卓手机客户端)就会出现数据丢失的问题,而且数据丢的特别严重:既然串口上面输出的结果是正确的,那么证明单片机本身没有任何问题。
Android通过蓝牙与单片机(HC-05)进行通信,接收数据
Android通过蓝牙接收单片机发来的数据。
安卓蓝牙串口模块可发送可接收(亲测可用)
安卓蓝牙串口模块可发送可接收(亲测可用)安卓机控制设备
android 蓝牙编程重点---如何发送和接收16进制数据
与蓝牙模块通信最重要的地方就是数据的发送和接收,因为是底层的操作,所以更多是发送16进制数据。 进制转换是我们程序员的必修课,属于基本素质。这里需要的是将字节数组转化为16进制字符串,方法都是通用的: public static String bytesToHexString(byte[] bytes) { String result = ""; fo
蓝牙数据 传来数据值处理
最近开始学IOS开发,正做蓝牙测试。我们有4.0外设,用pad连接,接收数据。在接收数据过程中,还是遇到了问题:用readValue后读不到value的值。困扰了大半天,现在分享下解决心得,供其他新手参考。由于本人也是水货,写的不好的地方请提出讨论,勿喷。 程序中,搜索设备,搜service UUID ,找characteristic 等就不讲了,这方面网上资料还是挺多的。现在就