问题描述:假设你有三个RSL10设备,如果三个名字一样,地址一样,会出现什么问题?
当然,你可能只能连接到1个设备,而且,每次扫描结果可能不一样. 因为BLE设备在同一个通信中,必须只能有一个独立的地址;
在开发中,你可能是一套程序,下载到了多个设备中,但如果不修改设备地址和设备名字,你可能无法扫描到多个设备,只能扫描到一个设备。
这里以peripheral_server的例子来讲:
修改蓝牙设备地址:
/* Length of Bluetooth address (in octets) */
#define BDADDR_LENGTH 6
/* Static private Bluetooth device address */
#ifndef PRIVATE_BDADDR
#define PRIVATE_BDADDR { 0x95, 0x11, 0x22, 0xff, 0xbb, 0xD5 }
#endif
修改PRIVATE_BDADDR ,{ 0x95, 0x11, 0x22, 0xff, 0xbb, 0xD5 } ->{ 0x95, 0x12, 0x22, 0xff, 0xbb, 0xD5 }
修改名字:
找到include/ble_std.h 85~90行
/* Set the device name */
#define APP_DEVICE_NAME_LENGTH_MAX 20
//#define APP_DFLT_DEVICE_NAME "Living_Room_Lamp"
#define APP_DFLT_DEVICE_NAME "Bed_Room2_Lamp"
#define APP_DEVICE_NAME_FLAG '\x09'
修改完后,就能在手机上扫描到多个BLE蓝牙设备了。