5189|11

5

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

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,进行广播,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不起作用,  详情 回复 发表于 2023-9-5 10:10
点赞 关注
 
 

回复
举报

9792

帖子

24

TA的资源

版主

沙发
 
查看你的用其它模块实现的Server(Peripheral)是不是已经处在广播状态
查看通过手机看到的MAC地址和Chat工程中bdaddr是否一致(这个地址和你手机通过软件看到的地址的顺序相反)
我试了一下用BlueNRG-1连接小米手环能够成功
如果问题还没解决再看一下ret的值是多少
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
littleshrimp 发表于 2019-1-21 19:43
查看你的用其它模块实现的Server(Peripheral)是不是已经处在广播状态
查看通过手机看到的MAC地址和Chat ...

谢谢虾哥,已经解决了,我的server没有处于广播状态,需要进行扫描,扫描之后在连接设备,能够连接成功了。但是,我发现我sever没有广播,然后直接连接,返回的ret,居然是success,这是为什么?
 
 
 

回复

9792

帖子

24

TA的资源

版主

4
 
没广播连接成功后能通信吗
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

5
 
本帖最后由 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[16] = {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[0].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);

点评

charUuid128_TX和另一个设备的一致吗?  详情 回复 发表于 2019-1-23 10:44
 
 
 

回复

9792

帖子

24

TA的资源

版主

6
 
fdding 发表于 2019-1-22 16:20
虾哥,好像还是通信不了,我在server端打印一直出现的是GATT_WRITE_NOT_PERMIT,好像是还要绑定uuid,但 ...

charUuid128_TX和另一个设备的一致吗?
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

7
 
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函数触发不了这个事件。

点评

@lucienkuang是ST负责BlutNRG的FAE,可以请他帮忙分析一下  详情 回复 发表于 2019-1-24 21:51
 
 
 

回复

9792

帖子

24

TA的资源

版主

8
 
fdding 发表于 2019-1-23 16:26
uuid是一致的,我用aci_gatt_disc_read_char_by_uuid_resp_event这个事件来获取tx_handle,但是我用aci_g ...

@lucienkuang是ST负责BlutNRG的FAE,可以请他帮忙分析一下

点评

我看了一下BLE_Chat Client和BLE_SensorDemo_Central的代码,还没研究明白 BLE_SensorDemo_Central你了解过没?  详情 回复 发表于 2019-1-24 21:53
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

9792

帖子

24

TA的资源

版主

9
 
littleshrimp 发表于 2019-1-24 21:51
@lucienkuang是ST负责BlutNRG的FAE,可以请他帮忙分析一下

我看了一下BLE_Chat Client和BLE_SensorDemo_Central的代码,还没研究明白
BLE_SensorDemo_Central你了解过没?

点评

麻烦了,虾哥,原因找到了,确实是UUID没有一致。由于之前没有接触过蓝牙的设备,原来UUID也有大小端的区分,我在手机上显示的和代码的UUID是相反的,现在能够和server正常通信了。多谢了。  详情 回复 发表于 2019-1-25 11:57
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

10
 
littleshrimp 发表于 2019-1-24 21:53
我看了一下BLE_Chat Client和BLE_SensorDemo_Central的代码,还没研究明白
BLE_SensorDemo_Central你了 ...

麻烦了,虾哥,原因找到了,确实是UUID没有一致。由于之前没有接触过蓝牙的设备,原来UUID也有大小端的区分,我在手机上显示的和代码的UUID是相反的,现在能够和server正常通信了。多谢了。

点评

确实有这个问题 找到问题就好  详情 回复 发表于 2019-1-25 12:28
 
 
 

回复

9792

帖子

24

TA的资源

版主

11
 
fdding 发表于 2019-1-25 11:57
麻烦了,虾哥,原因找到了,确实是UUID没有一致。由于之前没有接触过蓝牙的设备,原来UUID也有大小端的区 ...

确实有这个问题 找到问题就好
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

12
 
你好我也出现这个问题了,手机端为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不起作用,
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表