一. 声明
第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。 第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等 第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等 第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。 第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL) 第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等 第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展 第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。 另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。
------------------------------------------------------------------------------------------------------------------------------------------ CSDN学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144 蓝牙交流扣扣群:970324688 Github代码:https://github.com/sj15712795029/bluetooth_stack 入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708 ------------------------------------------------------------------------------------------------------------------------------------------ 二. 电脑端串口工具验证CSR8311初始化可能有人会问,我不会蓝牙协议栈,但是我还想验证下模块是否正常,那么这样有没有办法呢,有的,放心!我们不用写一行代码,只需要了解上面的数据格式就OK了。 注意:在这里不是说量产测试工具哈,是我们自己手里有一个模组来验证,如果是量产工具那么肯定有他自己的验证方法。 Step 1) 硬件连接
看以上接线图,如果我们是PC串口验证的话,那么MCU就相当于我们PC的角色·所以我们拿一个CH340或者CP2102的串口调试板接到电脑就行,如下图:
Step 2) 串口工具的配置
主要分几点需要设置: ① 串口配置,8bit数据为,1bit停止位,无奇偶校验 ② 设置为16进制发送,16进制显示 ③ 把RTS勾选上,相当于开启了流控 注意一点:不要勾选发送新行。 Step 3) 按照以下command来复制到上面就行了 大大的注意字体:只复制send就行了,receive是芯片回来的event,不用复制 假设这组:你只需要复制红色的16进制就行了,还不明白,看我们HCI章节的视频。 send:HCI reset 01 03 0C 00 receive: 04 0E 04 01 03 0C 00 [code]send:HCI reset 01 03 0C 00 receive: 04 0E 04 01 03 0C 00 send:PSKEY PSKEY_ANA_FREQ 01 00 FC 13 C2 02 00 09 00 1E 00 03 70 00 00 FE 01 01 00 00 00 90 65 receive 04 FF 13 C2 01 00 09 00 1E 00 03 70 00 00 FE 01 01 00 00 00 90 65 send:PSKEY_HOST_INTERFACE H4 01 00 FC 13 C2 02 00 09 00 04 00 03 70 00 00 F9 01 01 00 00 00 03 00 receive: 04 FF 13 C2 01 00 09 00 04 00 03 70 00 00 F9 01 01 00 00 00 03 00 send:PSKEY PSKEY_UART_CONFIG_H4 01 00 FC 13 C2 02 00 09 00 05 00 03 70 00 00 C0 01 01 00 00 00 A8 08 receive: 04 FF 13 C2 01 00 09 00 05 00 03 70 00 00 C0 01 01 00 00 00 A8 08 send:PSKEY_BDADDR 01 00 FC 19 C2 02 00 0C 00 08 00 03 70 00 00 01 00 04 00 00 00 45 00 46 4F B8 00 64 DC receive: 04 FF 19 C2 01 00 0C 00 08 00 03 70 00 00 01 00 04 00 00 00 45 00 46 4F B8 00 64 DC send:PSKEY_UART_BITRATE 01 00 FC 15 C2 02 00 0A 00 09 00 03 70 00 00 EA 01 02 00 00 00 01 00 00 C2 receive 04 FF 15 C2 01 00 0A 00 09 00 03 70 00 00 EA 01 02 00 00 00 01 00 00 C2 send:warm reset 01 00 FC 13 C2 02 00 09 00 4D 0E 02 40 00 00 00 00 00 00 00 00 00 00 receive: 04 0F 04 00 01 00 00 send:Radio test 01 00 FC 13 C2 02 00 09 00 A0 00 04 50 00 00 1D 00 3A 00 00 00 00 00 receive 04 FF 13 C2 01 00 09 00 A0 00 04 50 00 00 1D 00 3A 00 00 00 00 00 send:HCI read bt address 01 09 10 00 receive:刚刚设定的 04 0E 0A 01 09 10 00 46 4F 45 B8 64 DC send:HCI read buffer size 01 05 10 00 receive: 04 0E 0B 01 05 10 00 36 01 40 0A 00 08 00 send:HCI read locol feature 01 03 10 00 receive: 04 0E 0C 01 03 10 00 FF FF 8F FE DB FF 5B 87 send:HCI set event mask 01 01 0C 08 FF FF FF FF FF FF FF 3F receive: 04 0E 04 01 01 0C 00 send:HCI weite page timeout 01 18 0C 02 00 20 receive 04 0E 04 01 18 0C 00 send:HCI write cod 01 24 0C 03 04 04 24 receive: 04 0E 04 01 24 0C 00 send:HCI write auth enable 01 20 0C 01 00 receive: 04 0E 04 01 20 0C 00 send:HCI write inquiry active 01 1E 0C 04 00 02 12 00 receive: 04 0E 04 01 1E 0C 00 send:HCI write page scan active 01 1C 0C 04 90 00 12 00 receive: 04 0E 04 01 1C 0C 00 send:HCI write inquiry mode 01 45 0C 01 02 receive: 04 0E 04 01 45 0C 00 [/code] Step 4) 激动人心时刻,让芯片可被搜索 当然以上步骤可以省略一部分哈·,我没做最简化处理,另外自己不要敲了,去我博客复制吧,我自己敲过一遍,再也不想敲了,哈哈。最后一步,最关键,是设置为可搜索可被连接 [code]send:HCI write scan enable 01 1A 0C 01 03 receive: 04 0E 04 01 1A 0C 00[/code] 做完以上步骤你神奇的发现就能被搜索到了 |
GMT+8, 2025-12-16 13:16 , Processed in 0.159690 second(s), 14 queries , Gzip On, MemCached On.
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.