BlueNRG-1作为CLIENT模式如何连接SERVER
网上大多数都是用BlueNRG-1作为SERVER,我想让它作为CLIENT和SERVER通信。我用了官网BLE_CHAT的client模式的代码,用SERVER的mac地址连接BlueBRG,发现没有触发连接事件,不知道什么原因?请大神们知道下,谢谢!我的server是自己弄的一个蓝牙模块,和手机相连是没有问题的。ret = aci_gap_create_connection(0x4000, 0x4000, PUBLIC_ADDR, bdaddr, PUBLIC_ADDR, 40, 40, 0, 60, 2000 , 2000);
if (ret != BLE_STATUS_SUCCESS)
{
printf("Error while starting connection: 0x%04x\r\n", ret);
Clock_Wait(100);
}
查看你的用其它模块实现的Server(Peripheral)是不是已经处在广播状态
查看通过手机看到的MAC地址和Chat工程中bdaddr是否一致(这个地址和你手机通过软件看到的地址的顺序相反)
我试了一下用BlueNRG-1连接小米手环能够成功
如果问题还没解决再看一下ret的值是多少 littleshrimp 发表于 2019-1-21 19:43
查看你的用其它模块实现的Server(Peripheral)是不是已经处在广播状态
查看通过手机看到的MAC地址和Chat ...
谢谢虾哥,已经解决了,我的server没有处于广播状态,需要进行扫描,扫描之后在连接设备,能够连接成功了。但是,我发现我sever没有广播,然后直接连接,返回的ret,居然是success,这是为什么? 没广播连接成功后能通信吗 本帖最后由 fdding 于 2019-1-22 18:08 编辑
littleshrimp 发表于 2019-1-22 14:20
没广播连接成功后能通信吗
虾哥,好像还是通信不了,我在server端打印一直出现的是GATT_WRITE_NOT_PERMIT,好像是还要绑定uuid,但是一直出现错误Error in aci_gatt_disc_char_by_uuid() for TX characteristic: 0x0046,用的函数是aci_gatt_disc_char_by_uuid
const uint8_t charUuid128_TX = {0x00,0x00,0xee,0x01,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0x80,0x5f,0x9b,0x34,0xfb};
Osal_MemCpy(&UUID_Tx.UUID_16, charUuid128_TX, 16);
ret = aci_gatt_disc_char_by_uuid(discovery.connection_handle, 0x0001, 0xFFFF,UUID_TYPE_128,&UUID_Tx);
if (ret != 0)
printf ("Error in aci_gatt_disc_char_by_uuid() for TX characteristic: 0x%04x\r\n", ret);
else
printf ("aci_gatt_disc_char_by_uuid() for TX characteristic --> SUCCESS\r\n");
APP_FLAG_SET(START_READ_TX_CHAR_HANDLE);
fdding 发表于 2019-1-22 16:20
虾哥,好像还是通信不了,我在server端打印一直出现的是GATT_WRITE_NOT_PERMIT,好像是还要绑定uuid,但 ...
charUuid128_TX和另一个设备的一致吗? littleshrimp 发表于 2019-1-23 10:44
charUuid128_TX和另一个设备的一致吗?
uuid是一致的,我用aci_gatt_disc_read_char_by_uuid_resp_event这个事件来获取tx_handle,但是我用aci_gatt_disc_char_by_uuid函数触发不了这个事件。 fdding 发表于 2019-1-23 16:26
uuid是一致的,我用aci_gatt_disc_read_char_by_uuid_resp_event这个事件来获取tx_handle,但是我用aci_g ...
@lucienkuang是ST负责BlutNRG的FAE,可以请他帮忙分析一下 littleshrimp 发表于 2019-1-24 21:51
@lucienkuang是ST负责BlutNRG的FAE,可以请他帮忙分析一下
我看了一下BLE_Chat Client和BLE_SensorDemo_Central的代码,还没研究明白
BLE_SensorDemo_Central你了解过没? littleshrimp 发表于 2019-1-24 21:53
我看了一下BLE_Chat Client和BLE_SensorDemo_Central的代码,还没研究明白
BLE_SensorDemo_Central你了 ...
麻烦了,虾哥,原因找到了,确实是UUID没有一致。由于之前没有接触过蓝牙的设备,原来UUID也有大小端的区分,我在手机上显示的和代码的UUID是相反的,现在能够和server正常通信了。多谢了。 fdding 发表于 2019-1-25 11:57
麻烦了,虾哥,原因找到了,确实是UUID没有一致。由于之前没有接触过蓝牙的设备,原来UUID也有大小端的区 ...
确实有这个问题 找到问题就好 你好我也出现这个问题了,手机端为server,进行广播,blueNRG进行连接ret = aci_gap_create_connection(LE_1M_PHY_BIT, PUBLIC_ADDR, bdaddr); printf("ret = %d\n", ret); if (ret != BLE_STATUS_SUCCESS) { printf("Error while starting connection: 0x%04x\r\n", ret); Clock_Wait(100); },直接返回ret = 0,connection不起作用,
页:
[1]