笔记本蓝牙无法接收文件,只可以发送。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记本蓝牙无法接收文件,只可以发送。相关的知识,希望对你有一定的参考价值。
本子只能给手机发送文件,却无法接收文件,以前有“接收文件”的选项的,但是后来没有了。本子做过一次系统,不知有没有关系?但我已经重新安装了蓝牙的驱动了。求帮忙,急死了!
首先看两个设备是否都具有蓝牙功能(如果是电脑还需要正确安装蓝牙驱动);其次看设备是否打开蓝牙功能(不打开的话设备不能被找到);再次还要成功连接两个设备(一般要用到PIN码和配对码。PIN码一般是“0000”、“1111”或“1234”,配对码是当下设置并使用的,两个设备要求配对必须一致);第四、传送距离一般不得超过10米,否则传送会中断;第五、传送成功会有成功提示,只需在接收方找到文件即可打开(一般在“我的文件”的bluetooth文件夹中);第五、选中要传输的文件,在菜单中选“分享”,再选择“蓝牙”,然后按提示操作,如操作正确会有传输成功完成的提示。另外,蓝牙耳机与手机连接:手机要先打开蓝牙并处在被发现状态,按住蓝牙耳机开关键不放,直到手机蓝牙搜索到耳机并显示出耳机型号,再点击手机中显示的耳机型号进行连接,显示“已连接”说明连接成功,此时方可松开耳机开关键。
祝好运! 参考技术A 你接收文件的时候先右击蓝牙,看看里面有没有接收文件这个选项,如果有的话在接收文件之前打开这个选项,然后再用蓝牙发送。 参考技术B 首先要确认手机蓝牙与电脑蓝牙已经配对好了,再确认电脑蓝牙有没有正在连接其他蓝牙设备,比如蓝牙耳机,最好先断开,再右击桌面右下角的蓝牙图标,点击【接收文件】,这时通过手机蓝牙向电脑发送文件试下。
ESP32 BLE蓝牙 微信小程序通信发送大于20字符数据
由于微信小程序只支持BLE每次发送数据不大于20个字节,ESP32则有经典蓝牙、低功耗蓝牙两种模式。
要解决发送数据大于20个字节的问题,最简单实用的方式就是分包发送。如下图所示:
1、什么起始字符和结束字符
起始字符用来通知接收端,当接收端接收到起始字符之后开始通过循环拼接字符,当接收端接收到结束字符之后得就能得到本次接收的所有字符。
2、如何选择起始字符和结束字符
参考ASCII码选择要发送的字符中没有的字符。
2、为什么小于18字符
由于每次最多发送20个字符,那么为了保证安全和效率不要打擦边球,所有选择每个包最多18个字符。
参考小程序代码:
//要发送的字符串(要在起始位置添加起始字符,结束位置添加结束字符) let order = that.stringToBytes(recs); let byteLen = order.byteLength;//长度 let pos = 0; //字符位置 let tempBuffer; //一次发送的数据 var i = 0; //计数 //为了安全每次发送18个字节 (每次最多20个) //发送之前 while (byteLen > 0) { i++; if (byteLen > 18) { tempBuffer = order.slice(pos, pos + 18); pos += 18; byteLen -= 18; console.log("第", i, "次发送:", tempBuffer); that.writeBLECharacteristicValue(tempBuffer); } else { tempBuffer = order.slice(pos, pos + byteLen); pos += byteLen; byteLen -= byteLen; console.log("第", i, "次发送:", tempBuffer); that.writeBLECharacteristicValue(tempBuffer); } } console.log("发送结束");
ESP32接收端参考代码:
void onWrite(BLECharacteristic *pCharacteristic) { std::string rxValue = pCharacteristic->getValue(); if (rxValue.length() > 0) { for (int i = 0; i < rxValue.length(); i++){ //防止 意外字符串过长 if(bleReslen>1024){ bleReslen=0; } //开始标志 if((int)rxValue[i]==ASCII_STR){//ASCII 起始符 bleReslen=0; //结束标志 }else if((int)rxValue[i]==ASCII_END){//ASCII 结束符 extractData();//提取数据结束 bleReslen=0; }else{ //拼接字符串 encBefor[bleReslen]=(char)rxValue[i];//赋值 bleReslen++; } } } }
以上是关于笔记本蓝牙无法接收文件,只可以发送。的主要内容,如果未能解决你的问题,请参考以下文章