微信小程序可以控制蓝牙么

微信小程序可以控制蓝牙么,第1张

是的,微信小程序可以通过微信蓝牙api来控制蓝牙设备。具体可以使用wxopenBluetoothAdapter方法打开蓝牙适配器,使用wxstartBluetoothDevicesDiscovery方法搜索周围的蓝牙设备,使用wxcreateBLEConnection方法连接指定的蓝牙设备,使用wxwriteBLECharacteristicValue方法向蓝牙设备写入数据,使用wxreadBLECharacteristicValue方法从蓝牙设备读取数据等逐步控制蓝牙设备。而且微信小程序对蓝牙设备的控制是基于蓝牙低功耗协议(BLE)进行的,可以实现较低功耗、较稳定的蓝牙控制。

文章从以下几个问题着手分析蓝牙5的速率:

蓝牙5定义的 LE 2M PHY以及蓝牙4x协议 LE 1M PHY都称为未编码PHY,因为它们每位数据使用1个符号表示(与使用S=2或S=8的新LE编码PHY相比)。

我们需要明白各大芯片厂商数据手册宣传的速度(1 Mbps和新的2 Mbps)仅仅只是理论值(空中速率),并且在应用程序中吞吐量会被削减。原因有多种,我们将在下面一一介绍。

蓝牙5“2x速度”需要硬件支持,因此老的设备/芯片/模块将不支持蓝牙5 2M PHY(市面已经有手机支持蓝牙5 2M PHY)。要注意,为了实现更高吞吐量,需要两个BLE设备相互都支持LE 2M PHY。

此外,当使用更高速度的PHY时,实际上功耗可以做的更低(传输相同数量的数据,时间短功耗低)。这是因为减少了芯片工作时间而又没有增加发射功率。反过来这样做改善了与24 GHz频谱内的其他无线技术的共存(也是由于减少了无线电工作时间,减少2,4G带宽的占用)。

1 Mbps(LE 1M PHY),2 Mbps(LE 2M PHY),125 kbps和500 kbps(均使用LE编码PHY,S = 8和S = 2)的数据速率是无线电在空中的速率传输数据,但由于以下原因,应用程序吞吐量是达不到该理论值:

我们感兴趣的部分(真正定义应用程序数据的部分)是ATT Payload。 从图中可以看出,蓝牙低功耗中的每一层都使用了许多额外开销字节

首先了解下蓝牙5中使用新LE 2M PHY的局限性:

LE 2M PHY上可以发生从端广播模式和主端扫描模式,然后使用LE 2M PHY在第二广告信道上进行连接。

蓝牙5中基本上有三种PHY:原始的1 Mbps PHY,新的2 Mbps和编码的PHY(S = 2或S = 8)。所使用的PHY将直接影响您可以实现的最大数据吞吐量,因为它确定了通过无线方式发送数据包的实际原始数据速率。

连接间隔有效地确定在一个连接事件期间可以发送多少数据包。值越高,在一个连接事件中可以发送的数据包越多(某些设备达到某个限制)。

每个连接事件的数据包数量取决于设备和BLE堆栈,因此它受到限制,并且在特定设备上的设备和堆栈版本之间有所不同。此值还取决于设备的 *** 作,因此无线电可能必须处理其他事件,并且每个连接事件发送的数据包数量可能达不到堆栈允许的最大值。例如,iOS和Android之间的数量不同,也会根据设备上运行的 *** 作系统版本而有所不同。

此功能允许数据包大小保持更大的有效负载(最多251个字节,而禁用时为27个字节)。此功能是在蓝牙规范42版中引入的。

ATT MTU确定发送器和接收器可以处理的最大数据量以及它们可以保存在缓冲器中的数据量。

MTU值影响开销数据量(特别是3个字节的ATT头)。允许的最小ATT MTU是27个字节。这允许最多20个字节的ATT有效载荷(3个字节用于ATT报头,4个字节用于L2CAP报头)。

对于MTU值有多高,每个规范没有限制,但使用中的特定堆栈可能有其自身的局限性。例如,如果启用DLE,则最多可以传输251 - 4 = 247个字节(扣除L2CAP标头大小后)。在考虑ATT报头(3个字节)之后,我们留下了244个字节用于实际的ATT有效载荷数据。如果MTU至少为247字节,则MTU将适合一个单独的数据包。如果MTU大于247字节,则MTU将跨越多个分组,导致吞吐量下降(由于分组开销和分组之间的定时)。

有效MTU由客户端和服务器支持的ATT MTU的最小值确定。例如,如果客户端支持100字节的ATT MTU并且服务器响应它支持150字节的ATT MTU,则客户端将决定用于从其上进行连接的ATT MTU是100字节。

如果需要高吞吐量,那么我们可以使用Write without response或Notifications将数据从客户端传输到服务器以及从服务器传输到客户端。这些 *** 作不需要其他设备确认收到数据并在下一个数据块发送之前做出响应。

如果接收数据的设备没有要发回的数据,则仍需要按照蓝牙规范发送空数据包。

正如我们在数据包格式图中看到的那样,数据包包含一些不计入应用程序数据(ATT数据)的开销数据。基本上,这些字节将消耗部分传输数据速率,而不考虑作为应用程序数据的一部分发送的任何字节。

正如我们之前提到的,有如下些因数会影响数据吞吐量:

蓝牙版本和PHY确定原始数据传输速率。例如,如果我们使用蓝牙版本42和LE 1M PHY,则传输速率为1 Mbps。另一方面,如果我们使用蓝牙5 S = 8的 LE编码PHY,则数据速率降至125 kbps。

DLE,ATT MTU,连接间隔,每个连接间隔的最大数据包数, *** 作和IFS都是用于实际数据传输时间。

数据包格式在传输的数据量是实际应用程序数据方面起着重要作用。 LE 1M PHY和LE 2M PHY都具有类似的数据包格式。 LE编码PHY具有明显不同的数据包格式,因此我们将分别查看这两种情况:LE 1M PHY和LE 2M PHY计算。

为简单起见,我们做 假设 如下:

步骤:

空包传输时间可以如下计算:

基于此,传输 空1M PHY数据包 的时间将是:

数据包将包含数据包格式图中列出的所有字段,但MIC字段除外(加密禁用)。

如果我们启用了DLE并且ATT MTU等于一个数据包中允许的最大字节数:247个字节,那么我们可以将数据包大小计算为:

2M PHY 的情况下,它将是:

启用DLE并且ATT MTU设置为小于247 时,会产生更多开销(因为现在大于ATT MTU的数据被分成更多数据包)。例如,假设我们将ATT MTU设置为158,那么为了传输244个字节的应用程序数据,我们需要两个数据包而不是一个,导致吞吐量因字节开销增加而增加而增加数据包之间的IFS。

在另一种情况下,我们可以 禁用DLE(有效负载大小最多27个字节)和ATT MTU大于27个字节 。这也将导致需要为相同数量的数据发送更多数据包,从而导致吞吐量下降。

注意:

前一篇文章讲过,这种计算并不总是纯粹的数学计算,需要考虑使用的堆栈和设备的限制。在蓝牙芯片供应商的SDK中,通常在其文档中会列出最大值。 iOS和Android的最大值随 *** 作系统版本而变化,所以要弄清楚并不容易。

一旦计算出最大值,就可以计算出适合所选连接间隔的最大理论数据包数。例如,如果我们的连接间隔为75毫秒(规范允许的最低值),则对于上面的示例(使用1M PHY,启用DLE):

每个连接间隔的最大数据包数= [75 1,000微秒/ 2,468微秒] = 3个数据包

通常,这个数字是不现实的,因为在连续的连接事件上发送的数据包之间存在时间延迟。因此,对于我们的示例,我们将使用2个数据包而不是3个数据包。

一旦我们计算出 每个连接间隔可以传输的最大数据包数 ,我们就可以计算出 数据吞吐量

大家会认为,连接间隔越小,速率肯定更高,实际并不是这样的。

路由器,蓝牙,手机wifi等24G的设备干扰,测试设备主从之间的距离,设备之间存在障碍等因数都会影响测试结果。

上面列出的测试值和理论值,可能实际环境中的测量数据吞吐量不一致。

干扰和传输/接收错误会影响数据吞吐量(重试,数据丢失和连接事件关闭会导致吞吐量降低)。

但本文详细分析了所有和速率相关的因素,在实际使用中,大家可以自由DIY。

>

Bluetooth Low Energy(BLE)技术本身不支持PPT协议,因为PPT协议并不是一种标准的BLE应用层协议。BLE的应用层协议通常被设计用于低功耗设备之间的通信,并且支持特定的GATT属性配置文件和服务。

如果您需要通过BLE连接控制PPT文档,可能需要将自定义协议添加到应用程序中,可以使用BLE作为通信介质。例如,您可以编写一个自定义应用程序,将PPT文件转换为图像格式,并将其传输到BLE从设备上,然后在主设备上解码和显示这些图像。

此外,也有许多已经存在的无线控制方案,专门用于控制PPT文档。例如,通过Wi-Fi连接的遥控器、红外线遥控器等等。这些方案可能比通过BLE连接控制PPT更加简单和可靠。

大学时期参加了一次省赛,主要工作是:负责编写ble上位机程序,开发一个专用app。这次经历给我的启发就是:1,ble十分适合用于开发低功耗方向的产品,同时具备足够长的传输距离(资料显示100m以内,实际50m没问题滴!);2,传输数据最好采取“标志位+数据”的方式发送不同含义和不同长度的数据包,因为ble一个包最多20个字节,放不下太多东西的;3,稳定性的话就要保证传输之间尽量少障碍物和别的电磁波干扰,如果采取模块的就更简单了。以上是一些见解,希望帮到你

打开SKB501的EVK物料套件,里面包含了SKB501 EVB板一块,Micro USB 电电源线一根,以及4条串口连接的杜邦线。

详细阅读EVB 使用手册,了解EVB板的基本功能。

下载PL2303串口驱动程序,并在用于调试蓝牙模块SKB501的电脑上安装该驱动程序PL2303_Prolific_DriverInstaller_v150exe

将Micro-USB电源线的USB端连接到计算机,另一端连接到EVB板,打开计算机设备管理器查看是否有相应的com端口

V_OUT 与 V_IN 用短路帽连接,蓝牙模块SKB501,将TX连接到P001、RX和P002。打开电源开关,电源指示灯亮,可以工作。

在调试电脑上下载并安装串口调试助手XCOM V20exe,打开并运行串口调试助手

选择相应的com端口,波特率为115200,发送命令执行相关 *** 作,实例发送“AT”的反馈结果表示硬件连接正常。

1、在安装此BlueSoleil 6最新版前,请拔下蓝牙设配器,卸载BlueSoleil的旧版本;

2、安装完毕,提示是否要重启,选择“否”,暂不要重启系统;

3、将破解补丁复制到程序安装目录下(如C:\Program Files\IVT Corporation\BlueSoleil\);

4、然后重启系统,插上USB蓝牙设配器,驱动自动安装完成。

5、如果已经运行了BlueSoleil程序(任务栏有图标显示),尚未破解,就需要关闭相应进程,或者进入安全模式,再次运行破解补丁!

BLE广告是蓝牙低功耗最重要的方面之一。 了解如何正确使用广告可以帮助你降低功耗,加快连接速度,提高可靠性。 我们将要了解他们的工作原理以及如何使用它们。

蓝牙智能(Bluetooth Smart)有两种通信方式。 第一种通信方式是使用广告,其中BLE外围设备向其周围的每个设备广播数据包。 然后,接收设备可以对该信息进行 *** 作或连接以接收更多信息。 第二种通信方式是使用连接来接收数据包,外围和中心都发送数据包。 我们将重点放在广告上,原因有几个:

广告是有意设计为单向的。 中央 设备无法在没有连接的情况下将任何数据发送到外围设备。 但是单个外设可以向该区域的多个主设备发送广告。

在我们进入广告包发送之前,我们想谈谈一下BLE物理层。 物理层负责在空中实际发送信号。 这包括实际的射频收发器。

蓝牙低功耗与经典蓝牙具有一些相似之处。 两者都使用24GHz频谱。 基本速率(BR)和BLE均采用1Mbps的GFSK调制,但其调制指数不同。 增强数据速率(EDR)使用与GFSK完全不同的调制。 经典蓝牙与LE的40个频道相比有79个频道。 通道间隔也不同。 这两个差异使LE和经典蓝牙不同,不兼容,所以他们无法沟通。 双模式射频,像CC256x,通过切换其调制参数和运行频道来支持LE和经典蓝牙。

用于蓝牙的24GHz频谱从2402MHz延伸到2480MHz。 LE使用40个1MHz宽的信道,编号为0到39,每个信道分开2MHz。

频道37,38和39仅用于发送广告包。 其余的用于连接期间的数据交换。 我们对这3个频道的情况感兴趣,这就是我们在这里介绍的内容。

在BLE广告期间,BLE外围设备一个接一个地在3个广告信道上发送数据包。 扫描设备或信标的中央设备将收听这些频道的广告数据包,这有助于其发现附近的设备。

频道37,38和39有目的地分布在24GHz频谱上。 频道37和频道39是频带中的第一个和最后一个频道,而频道38在中间。 如果任何一个广告频道被阻止,其他频道可能是空闲的,因为它们分开了相当多的带宽。

这是特别真实的,因为干扰BLE的大多数其他设备是窄带。 频道38特别放在Wi-Fi频道1和6之间,所以它避开了Wi-Fi信号。 广告频道的宽间距有助于BLE更好地管理来自Wi-Fi,经典蓝牙,微波炉,婴儿监视器等的干扰,以确保广告成功。

当BLE外围设备处于广告模式时,在每个广告频道上周期性地发送广告包。 分组之间的时间间隔具有固定间隔和随机延迟。

你可以将固定间隔设置为从20ms到1024秒,步长为0625ms。 随机延迟是自动添加的从1ms到10ms的伪随机值。 这种随机性有助于减少不同设备的广告之间的碰撞的可能性。 我们提到过广告对于发现设备至关重要,所以不惜一切代价避免冲突是非常重要的。 这是蓝牙智能(Bluetooth Smart)使用的另一种方式来提高稳健性。

你可能会想,我只想在一个或两个频道上做广告,而不是全部三个来节省电量。 由于干扰的影响,大多数公司都对这种做法感到沮丧。 如果你选择的频道被阻止,你的设备将无法正常工作。 例如,苹果建议在所有3个频道上都进行广告,其他制造商也同样如此。

广告间隔与连接间隔是分开独立的。 因此,即便你的设备形成连接的速度较慢,连接建立后也不会阻止你快速发送数据。

蓝牙规范在蓝牙LE中定义了两个数据单元的顶级数据包。 分组本身具有包括前同步码和接入地址以及CRC的若干部分。

用于广告信道的分组数据单元(称为广告信道PDU)包括2字节报头和6到37字节的可变有效载荷。 有效载荷的实际长度由 广告信道PDU 的报头中的6位长度字段来定义。

请注意,广告有几种PDU类型,但我们将主要关注 ADV_IND ADV_NONCONN_IND 。 ADV_IND是一个通用的广告,通常是最常见的。 这是通用的,因为它没有被定向(not directed),并且它是可连接的(connectable),这意味着中央设备可以连接到正在发送此广告的外围设备,并且不指向特定的中央设备。

当外围设备发送ADV_IND广告时,它正在帮助诸如智能手机的中央设备找到它。 一旦找到,中央设备就可以开始连接过程。

ADV_NONCONN_IND是当外设不想接受连接时所使用的广告类型,这在信标(Beacons)中是典型的。

正确的广告方式取决于你的应用,无论你要形成快速连接还是完全避免连接。

广告信道PDU本身具有取决于广告PDU类型的有效载荷。 上图显示了ADV_IND有效载荷。 该有效载荷具有6字节的 广告地址 和可变数量的广告数据结构。

在考虑广告地址后(通常将其称为蓝牙MAC地址,尽管可能会随意更改),实际的广告数据结构仅有37 - 6 = 31字节。 这还必须包括长度,类型和数据本身。

我们浏览了几个层次,你可以看到BLE封装了大量数据。 这为你提供了很多灵活性来支持最适合你产品的不同行为。

在最低级别,广告有31个字节可以广告任何数量的不同的东西。 你可以在蓝牙Sig网站上查看广告数据类型的 完整列表 ,每种数据类型都指定了有效载荷中不同的数据标准。

一些最常用的 广告数据类型 是:

由于广告数据结构的数量是可变的,你可以根据需要进行组合。

建立广告最重要的部分是获取正确的信息到中央设备(智能手机或独立的中央设备),这通常取决于对你的产品什么最重要。 如果你的产品提供独特的服务,你可以广告这些服务,以便智能手机可以区分你的产品和附近的其他产品。 例如,Beacons具有诸如独特的UUID,功率级别和其他对于查找和使用Beacons很重要的特性的定制数据。

蓝牙SIG还具有制造商特定的0xFF数据类型,因此你可以灵活地定义自己的自定义有效负载。 苹果公司为iBeacons做了这一工作,它将标准的广告数据类型与制造商特定的一起组合。

定义自己的广告给你很大的力量,但是需要由你自己找到最好的方法来达到你想要的地方。

虽然每个应用程序都是不同的,但外设广告其提供的最重要或最独特的服务是连接到它的最简单方式,在许多产品中都是有意义的。当iPhone或Android正在寻找设备时,它可以使用定制服务UUID来查找要与其通话的确切设备并过滤掉其他设备。 搜索特定地址是不太可能的,但是找到具有唯一ID的设备更容易。

例如,假设你的产品是小型光传感器。 你可以使用唯一的128位UUID创建自定义服务。 然后,通过将UUID包括在广告包中,iPhone可以忽略除了你的产品之外的所有其他设备。 这样可以快速找到设备,因为你无需连接到每个设备来发现其功能。

这在节电方面也很好。 新一代的智能手机正在越来越多的在低水平上决策和过滤。 他们这样做是因为能够更高效地丢弃没有用的广告包,而不是通知 *** 作系统和用户稍后再丢弃。 但手机需要有关哪些应用程序必须提供过滤哪些的信息,这取决于服务或设备地址的唯一UUID。

一旦你开始使用BLE设备,你将很快意识到UUID至关重要。 服务,特征和其他项目都使用UUID来唯一标识它们。

UUID只不过是唯一的128位(16字节)数字:

75BEB663-74FC-4871-9737-AD184157450E

通常以4-2-2-2-6格式排列UUID。 每对字符表示一个十六进制数字。 所以75以上是实际的0x75。

为避免不断传输可能浪费的16个字节(蓝牙数据量非常有限,16个字节很大),蓝牙SIG采用了标准的UUID基础。 该基础形成128位UUID的前96位(12字节)。 其余的位由蓝牙SIG定义:

XXXXXXXX-0000-1000-8000-00805F9B34FB

最高的32位由你决定。 对于16位UUID,底部16位保持为0。例如,心率服务的简单16位UUID是:

0x180D

实际上这代表一个128位的UUID:

0000 180D -0000-1000-8000-00805F9B34FB

如果你使用Bluetooth SIG指定的现有服务或配置文件,则可以避免使用完整的128位UUID。 但是,定制服务需要一个完全定义的128位UUID。

UUID唯一重要的是它们是独一无二的。

你可以以各种方式随机生成它们。 一个可以生成它们的网站是 在线UUID生成器 。 在Mac OS X中,你可以使用命令行中的uuidgen实用程序来执行相同的 *** 作。

由于位数,你不太可能像其他任何人一样生成一样的UUID。 最重要的是你可以避免在自定义的UUID中使用蓝牙SIG的UUID基础。

最重要的事情之一是功耗和延迟之间的大的折中。 每个广告都消耗电力。 BLE射频必须通电并传输。 较少的广告,系统用一组电池能运行的时间越长。 那么将广告间隔设置为10秒是个好主意吗?

那么我们假设用户想连接到外设。 你能等10秒吗? 长时间间隔对于用户来说可能非常令人沮丧,尤其是在环境干扰和数据包丢失的情况下。 所以,使间隔太大对于用户体验是不利的。 在中间的某个地方,大约500ms到1秒是大多数产品的最佳选择。 在我们开发的一些应用程序中,我们已经增加了延时,但只有经过仔细考虑之后才做的决定。 某些系统在循环中没有用户,因此更容易做到。

当你构建广告数据包时,你还需要考虑更多字节意味着更高的功耗。 广告包中的每个字节都迫使射频收发器停留在更长的时间内传输,从而使用更多的能量。 在某些情况下,将广告中的字节数减少到最低限度可以帮助挤压硬币电池的所有内容。

蓝牙智能(Bluetooth Smart)设计允许外设功耗极低。 这部分是通过在智能手机上放置大量的负担,假设智能手机具有较大的电池并且容易充电。 但是,在实际产品中,你希望避免在智能手机上造成显着的电池消耗。 如果启用蓝牙会更快地耗尽电池,一些用户最终将无奈地停用蓝牙。 对于大多数要为用户提供快速体验的产品而言,这是一个问题。

智能手机使用的大部分功耗来自扫描广告。 因此,Android和iOS极大地限制了扫描,特别是后台扫描。

当你的应用程序处于前台时,你基本上可以完全控制BLE,并且你具有高优先级。 这是有道理的,因为苹果和谷歌知道你想要快速向用户显示数据,所以没有必要拖延它。

一旦你的应用程序处于后台,寻找附近的设备(如果你的应用程序支持它),则 *** 作系统通常会降低优先级。 这是通过几种方式完成的:

Android和iOS各自单独处理这个问题,因此了解在后台运行的效果对你的设备和连接很重要。

我们已经提到广告包有31个可供你使用的数据字节。 这不是很多,特别是当你考虑到128位UUID需要16字节时。 如果要包含更多信息,你唯一的选择是响应扫描响应。

当智能手机扫描广告时,它也可以从广告设备请求更多的信息而不形成连接。 这是通过扫描请求完成的,扫描请求是发送到外设的特殊数据包。 BLE外设接收扫描请求并以扫描响应进行响应。

扫描响应分组具有与广告相同的分组格式,除了较高层上的类型,表示它是扫描响应而不是广告。 因此,你的扫描响应可以提供你在广告数据包中没有提及的设备名称或其他服务。

扫描响应有一个已知问题。 如果在外围设备中启用扫描响应,则在发送广告以能够接收扫描请求包之后,设备必须将射频保持在RX模式。 即使没有实际发送的设备,仍然必须这样做(因为外设不知道谁真正在那里)。 这意味着更多的能源消耗。 对于非常低功耗的应用,如果不是绝对需要,请考虑禁用扫描响应。

如果不讨论Beacons,特别是Apple的iBeacon标准,则关于BLE广告的讨论将是不完整的。

信标(Beacons)是BLE外设,专门使用广告,但不允许连接。 不允许连接的原因是,如果信标要建立连接,广告将不得不停止,所以没有其他设备可以找到信标。 发送的数据包格式有所不同。 而苹果的iBeacon使用了非常特定的格式的有效载荷。

你可以看到iBeacon数据包的格式。 这些数据包使用基本的BLE格式和一些特定的字段。 我们一个接一个地来看看它们。

广告包包含蓝牙MAC地址和有效载荷。 有效载荷由两个AD结构组成,第一个使用Flags数据类型给出通用信息,第二个是Apple特定的iBeacon信息。

该数据包的数据类型为0x01,表示各种标志。 长度为2,因为有两个字节,数据类型和实际标志值。 标志值有几位表示iBeacon的功能:

大多数iBeacons是单模设备,BR/EDR不被使用。 对于iBeacons,使用通用可发现模式。

最重要的广告数据类型是第二个。 第一个字节表示字节数,总共26字节为0x1A,有效载荷为25字节,类型为1字节。 AD类型是制造商特定的0xFF,所以苹果已经定义了自己的广告数据。

前两个字节表示公司标识符0x4C00。 你也可以看到 其他公司的标识符 。

第二个两字节是信标广告标志。 这些总是0x02和0x15。

关键字段是iBeacon Proximity UUID,它独特地标识了iBeacon,后面是主要和次要(major and minor)字段。

每个iBeacon都必须拥有唯一的UUID,以便iPhone应用程序可以准确了解相对于一个或多个iBeacons的位置。

最后,还有一个校准的TX功率(calibrated TX power)的2的补码,可用于提高信标的位置精度(已经知道功率电平)。

没有什么阻止你用不同的制造商格式创建自己的信标。 问题是苹果专门检测具有特定格式的iBeacons,所以不会有任何互 *** 作性。

我们已经介绍了一些最受欢迎的BLE和蓝牙设备,其规格以及做出决定时要牢记的一些关键方面。

和往常一样,在创建BLE产品时,会有许多细节和问题发挥作用。 我们致力于帮助你完成正确的 *** 作,请随时与我们联系讨论。

[1]蓝牙特别兴趣小组 蓝牙v42规格 。

[2] Apple Inc iBeacon for Developers 。

以上就是关于微信小程序可以控制蓝牙么全部的内容,包括:微信小程序可以控制蓝牙么、BLE入门 20 蓝牙5速率分析、ble支持ppt协议吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9436971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存