引:
由于项目需要,需要使用到经典蓝牙,而市面上的蓝牙芯片大多是基于BLE的蓝牙芯片,而经典蓝牙芯片很少,经过近一个月的测试,原厂终于将经典蓝牙的SPP协议栈部分移植成功,对于应用层面,我也可以开始使用了。
一、SPP
在询问很多厂家是否支持SPP的时候,大多数都不知道是什么,我把SPP的定义说一下。
定义:SPP是Serial Port Profile(串口协议)的缩写,其定义了使用蓝牙进行RS232(或类似)串行电缆仿真的设备应使用的协议和过程。
简单来说就是在蓝牙设备之间建立虚拟的串口进行数据通信。说白了就是可以两个设备对端发送自定义数据,NOTED:苹果不支持SPP协议。
协议在整个蓝牙协议中的架构如下:
而SDP部分需要如下注册:
static const uint8_t spp_service_record[] =
{
/* 1.ServiceClassIDList */
SDP_DES_SIZE8, 0x8,
SDP_UINT16, BT_ATTRIBUTE_SERVICE_CLASS_ID_LIST>>8&0xff, BT_ATTRIBUTE_SERVICE_CLASS_ID_LIST&0xff, /* Service class ID list attribute */
SDP_DES_SIZE8, 3,
SDP_UUID16, BT_SERVICE_CLASS_SERIAL_PORT>>8&0xff, BT_SERVICE_CLASS_SERIAL_PORT&0xff,
/* 2.ProtocolDescriptorList */
SDP_DES_SIZE8, 0x11,
SDP_UINT16, BT_ATTRIBUTE_PROTOCOL_DESCRIPTOR_LIST>>8&0xff, BT_ATTRIBUTE_PROTOCOL_DESCRIPTOR_LIST&0xff,/* Protocol descriptor list attribute */
SDP_DES_SIZE8, 0xc,
SDP_DES_SIZE8, 0x3,
SDP_UUID16, BT_PROTOCOL_L2CAP>>8&0xff, BT_PROTOCOL_L2CAP&0xff, /*L2CAP*/
SDP_DES_SIZE8, 0x5,
SDP_UUID16, BT_PROTOCOL_RFCOMM>>8&0xff, BT_PROTOCOL_RFCOMM&0xff, /*RFCOMM*/
SDP_UINT8, RFCOMM_SPP_SERVER_CHNL, /*RFCOMM channel*/
/* BluetoothProfileDescriptorList */
SDP_DES_SIZE8, 0xd,
SDP_UINT16, BT_ATTRIBUTE_BLUETOOTH_PROFILE_DESCRIPTOR_LIST>>8&0xff, BT_ATTRIBUTE_BLUETOOTH_PROFILE_DESCRIPTOR_LIST&0xff, /* profile descriptor List */
SDP_DES_SIZE8, 0x8,
SDP_DES_SIZE8,0x06,
SDP_UUID16,BT_SERVICE_CLASS_SERIAL_PORT>>8&0xff, BT_SERVICE_CLASS_SERIAL_PORT&0xff,
SDP_UINT16,0x01,0x02, /* V1.2 */
};
关于协议栈部分,需要根据自己的需要进行设计,需要注意的是:SPP只有安卓手机支持,并且部分安卓手机必须有SPP APP才可以连接,iphone手机不能直接SPP,但是有一个替代协议IAP,此协议需要买MFI chip才能用。
二、AT-START-WB415开发板
我们看一下开发板的布局图
我们再看看原理图
三、软件部分
同其它的开发板一样,需要先下载几个关键资料,datasheet资料,开发板说明资料,keil支持的补丁包资料,还有就是BSP库文件。
我们可以到雅特力的官网去下载这些资料:
www.arterytek.com/cn/product/AT32WB415.jsp
资料都是很全面的,可以根据自己的需要进行下载。这里就不再赘述。
下载ICP文件
四、烧录及运行
协议栈下载
将ICP文件解压缩之后,打开ICP3.0.06
将开发板连接电脑,会自动识别,识别之后,点击'连接'按钮。
我们可以看见芯片的信息:
型号: AT32WB415CCU7-7
主存储器大小: 256KB
添加文件wb415_ble_spp_merge.bin文件。
添加之后,有一步容易忽略的,就是起始地址一定要更改为0才可以的。
提示框中也写到了,起始地址为0;只有填对信息,才会有以下的提示框:
点击下载,由于是下载协议栈,所以需要将擦除所有的磁盘空间:
出现校验成功之后,证明协议栈下载完成。
应用程序下载
打开工程文件,然后选择CMSIS-DAP 选项
进入之后,查看是否不是AT-LINK
点击下载按钮
提示下载完成
至此,应用程序下载完成。
demo测试
烧录完成之后,我们将P07接地
打开电脑的蓝牙
我们配对之后,选择蓝牙选项查看
蓝牙设置里面的COM端口
这个时候看见熟悉的'传入''传出'了
我们将串口调试助手打开,选择COM7
我们将USB转串口工具连接到板子上,记得使用的是PA2和PA3引脚。
我们打开两个串口软件,一个是COM7,另外一个在老刘的电脑上识别的是COM10,我们测试一下收发数据。
至此,SPP模式已经跑通。
结:
这款单片机有其自身的优势资源。M4内核。很好很强大。
,