![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝牙
jssn
记录嵌入式开发学习过程
展开
-
蓝牙数据收发机制
read,即是读取设备某个特性的值。write,即是修改设备某个特性的值。write with No Response,也是修改设备某个特性的值,只是不需要设备回应。Notify是设备里的数据发生变化之后通知主机(手机)来取数据,此时需要在手机端订阅相应的通知才有效。indicate,与notify类似,不同在于indicate需要手机回应,而notify则不需要。在蓝牙收发是根据蓝牙特性实现的,一个特性可看作是蓝牙的一个数据点,数据的收发都要依托于这些数据点。每个特性都有着不同的属性,如可读、可写等。原创 2023-09-22 15:47:40 · 1075 阅读 · 1 评论 -
蓝牙服务与特性
每个服务和特性都需要有一个UUID,其中UUID是蓝牙组织定义的 用于区分各个服务和特性的标识符,总长度为128bit。因此协议中定义了一个UUID的基地址,从而允许用户使用16bit的UUID,从而与该基地址拼接形成128bit的UUID。每个蓝牙设备都有若干个服务,每个服务下面有若干个特性,特性又有可读、可写、通知等。1.创建两个UUID,如1234、5678分别用于服务与特性的创建。3.创建服务,同时将创建好的特性放到服务里,并设置服务的UUID。最后,我们该如何创建自己想要的服务与特性呢?原创 2023-09-22 15:05:28 · 278 阅读 · 2 评论 -
蓝牙广播详解
在无线电频谱中,相邻的频道之间存在重叠和干扰的问题。因此,蓝牙选择了相隔一定距离的频道来广播。具体来说,蓝牙的广播通道之间相互间隔2 MHz。这种间隔使得不同广播通道之间的频谱彼此分离,减少了干扰的可能性。如上图所示蓝牙频段为2402MHZ~2480MHZ,其中每两个2MHZ为一个信道。其中37、38、39为广播信道,其余则为数据信道。蓝牙就是在这三个信道上进行广播,其中广播数据由6字节MAC地址+31字节若干个AD structure组成。note:三个广播信道分布在不同的三个频率差距较大的位置。原创 2023-09-21 17:13:16 · 1110 阅读 · 0 评论 -
蓝牙扫描响应详解
如下图所示,蓝牙广播是蓝牙设备主动发射的一些数据。而扫描响应是蓝牙从机收到蓝牙主机的扫描请求后,回复给蓝牙主机扫描响应。扫描响应的数据格式和蓝牙广播数据格式是完全一样的。不同点在于广播数据是主动发射的,扫描响应数据是接收到其他设备扫描请求后才会触发的。其中可连接非定向是最常用的广播方式,可连接定向用于快速连接。原创 2023-09-21 18:17:09 · 201 阅读 · 0 评论 -
蓝牙状态切换
当蓝牙上电后,会进入就绪态。进行开始广播操作后,进入广播 态。使用其他蓝牙设备对其进行连接,此时进入连接态。当断开连接后,会重新回到就绪态(回到就绪态后会搜不到,是因为此时不处于广播态)。在实际使用时,我们希望断开连接后,可以立马被搜索到并且连接。这时候我们就需要在它进入就绪态后,使其再次进入到广播态。可使用中断函数来处理控制蓝牙状态的变化。原创 2023-09-21 18:57:59 · 171 阅读 · 0 评论