零. 概述 主要介绍下用正点原子的战舰(STM32F103ZET6)外接我们的蓝牙扩展版跑蓝牙协议栈的初始化以及搜索演示 一. 声明本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。 第二篇: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)。 -------------------------------------------------------------------------------------------------------------------------- 入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708 蓝牙学习目录:https://blog.csdn.net/XiaoXiaoPengBo/article/details/107727900 -------------------------------------------------------------------------------------------------------------------------- 二. STM32蓝牙协议栈封装使用AT command实现搜索使用步骤操作如下:(正点原子开发板外接蓝牙扩展点击链接)!!!!!!!!!!!!!!!!!!!! 步骤 1)准备好代码,从github下载下来最新的代码(在上面有介绍Github连接) 步骤 2)连接好硬件 分为以下几个小的步骤: ① UART2 TX/RX的接线 首先我们把原子的战舰开发板的P7的两个跳帽拔掉,分别把模组的丝印的TX接到P7的3pin上,然后把模组的RX接到P7的4 pin上 另外由于我们蓝牙协议栈跑的是Transport h4,所以需要流控功能,所以需要接CTS/RTS,所以我们还需要把模组的CTS接到原子战舰的PA0,模组的RTS接到原子战舰的PA1 ② 电源,GND接线 原子有单独的VOUT,因为我们的模组是5V供电,所以我们把模组的5V接到VOUT2的5V上,把GND接到战舰的VOUT2的GND上 整个正点原子接线位置如下 步骤 3)打开Keil工程文件夹下的project\stm32f10x_bb_csr8x11_bt\stm32f10x_bb_csr8x11.uvprojx,然后编译下载 注意几点: ① 设备类型修改为F103ZET6 ② 下载的时候要勾选Use micro lib 步骤4)打开串口工具(我用的是XCOM),然后做初始化动作,在发送串口敲BT_START,点击发送,出来以下log就证明初始化通过了,我们就可以来进行搜索动作了,注意一点:不能勾选发送新行,否则会解析错误 步骤5)然后敲BT_INQUIRY就能搜索到设备了 三.使用我们自己写的上位机来实现搜索
步骤跟AT的1)2)3)一样,我们从第四步开始讲解 打开我们工程源码1-BLUETOOTH\mcu_bt_tool\mcu_bt_tool\mcu_bt_tool\bin\Debug中的mcu_bt_tool.exe,当然你也可以直接用VS2010打开工程 步骤 4)打开串口 步骤 5)点击蓝牙开启按钮(此步骤跟AT 命令BT_START一样的效果,就是实现蓝牙初始化) 步骤 6) 等待初始化完成点击搜索按钮,你就发现可以搜索到蓝牙了 另外:使用上位机的时候注意几点: ① mcu_bt_tool.exe你如果想把可执行文件拿到别的路径单独执行,那么必须要把Newtonsoft.Json.dll跟exe放在同一个路径下,因为上位机是跟STM32用json沟通的 ② 因为目前搜索是开启的EIR,带RSSI的,所以他会重复性上来同一个设备,我没做根据同一个蓝牙地址做显示过滤,如果有兴趣的人可以加上这一块
|