6677|10

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Bluenrg-2N主机接收从机数据 [复制链接]

 
 

各位大佬,小弟有一事不明,想请教以下各位大佬!小弟想使用两个bluenrg-2n进行主从通信,bluenrg-2n分别各自与自己所在板子上的stm32f405通过SPI连接,从机发送简单的随机数,在主机端接收信号。

 

目前我已经可以实现主机和从机的init和建立连接的过程。我设置从机的CHAR_VALUE_LENGTH=1(我看到有帖子/指导说明说,具体出处记不清了,这里要设置的比实际需要传输的数据长度大3,但是我一开始设置为15,同样不行),通过aci_gatt_add_service和aci_gatt_add_char添加一个characteristics,并在建立连接之后设置LED闪烁,通过aci_gatt_update_char_value发送数据。从机所发送的数据我可以通过手机上的BLE-Scanner接收到,hex这里数据确实是在变化而且确实是我想发送的数据(我暂时还想不明白为什么只能看到hex的形式,但是在value那里却是乱码,不过我猜这个应该影响不大)

 

 

在主机端,我已经可以正确初始化设备并且通过aci_gap_create_connection根据已知的从机bdaddr正确建立主从连接(从机端LED有相应的建立连接后的状态响应并且返回状态值BLE_STATUS_SUCCESS)。接着我使用aci_gatt_disc_char_by_uuid和aci_gatt_read_using_char_uuid,但是无法得到从机发送的数据,而且主机的程序也无法进入到aci_gatt_disc_read_char_by_uuid_resp_event、aci_gatt_notification_event这些程序中(我在aci_gatt_notification_event程序中设置了receiveData函数用来传递接收到的数据并进行接下来的处理)。对于characteristics的UUID我在主机和从机的函数中给出的是相同的,没有进行顺序的颠倒(我个人猜测在函数中不需要颠倒顺序,只是在手机中读到的UUID的话要颠倒顺序,不知道对不对)

 

不知道各位大佬们有没有遇到我的这种问题或者有没有经验能够告知小弟一二,哪里做错了应该怎么解决,非常感谢大佬们的意见和帮助!

最新回复

对,找到characteristics之后,应该是需要绑定回调,具体用什么函数,你可以看手册。   详情 回复 发表于 2021-7-13 09:05
点赞 关注
 
 

回复
举报

9794

帖子

24

TA的资源

版主

沙发
 

乱码是因为你发送的hex 0x1c不是有效字符

点评

请问虾哥您这里的有效字符指的是字符串的意思吗?那这样的话,我发送的确实不是字符串而是一些数据,这个应该对于主机数据的接收没有影响吧?您认为是这个原因导致我主机无法接收到数据吗?  详情 回复 发表于 2021-7-11 15:15
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
littleshrimp 发表于 2021-7-11 12:56 乱码是因为你发送的hex 0x1c不是有效字符

请问虾哥您这里的有效字符指的是字符串的意思吗?那这样的话,我发送的确实不是字符串而是一些数据,这个应该对于主机数据的接收没有影响吧?您认为是这个原因导致我主机无法接收到数据吗?

 
 
 

回复

9794

帖子

24

TA的资源

版主

4
 
qiyuan 发表于 2021-7-11 15:15 请问虾哥您这里的有效字符指的是字符串的意思吗?那这样的话,我发送的确实不是字符串而是一些数据,这个 ...

可以搜一下ASCII码表

 

点评

嗯嗯,谢谢虾哥,这个问题我已经明白了。那么您知道是为什么导致主机接收不到数据呢,是我没有正确调用相应的函数嘛?  详情 回复 发表于 2021-7-12 15:09
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

5
 
littleshrimp 发表于 2021-7-11 17:55 可以搜一下ASCII码表  

嗯嗯,谢谢虾哥,这个问题我已经明白了。那么您知道是为什么导致主机接收不到数据呢,是我没有正确调用相应的函数嘛?

点评

这个例程你试过没? en.x-cube-ble2_v3.2.0.zip\Projects\NUCLEO-L476RG\Applications\Central  详情 回复 发表于 2021-7-12 16:39
 
 
 

回复

9794

帖子

24

TA的资源

版主

6
 
qiyuan 发表于 2021-7-12 15:09 嗯嗯,谢谢虾哥,这个问题我已经明白了。那么您知道是为什么导致主机接收不到数据呢,是我没有正确调用相 ...

这个例程你试过没?

en.x-cube-ble2_v3.2.0.zip\Projects\NUCLEO-L476RG\Applications\Central

点评

这个例程我有看,但是因为是自己开发的板子,所以没法直接使用  详情 回复 发表于 2021-7-12 17:14
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

1942

帖子

2

TA的资源

版主

7
 

从你问题的说明,从机是可以正常发送数据的,但是主机接收不到,应该是没有绑定回调,我记得创建连接成功之后,需要监测服务,这样从机发送数据之后,才会有回调。

点评

我是直接使用uuid寻找characteristics,您是说在创建连接、寻找到characteristics之后,需要主动自己写回调函数嘛?  详情 回复 发表于 2021-7-12 17:18
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

8
 
littleshrimp 发表于 2021-7-12 16:39 这个例程你试过没? en.x-cube-ble2_v3.2.0.zip\Projects\NUCLEO-L476RG\Applications\Central

这个例程我有看,但是因为是自己开发的板子,所以没法直接使用

 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

9
 
w494143467 发表于 2021-7-12 16:51 从你问题的说明,从机是可以正常发送数据的,但是主机接收不到,应该是没有绑定回调,我记得创建连接成功之 ...

我是直接使用uuid寻找characteristics,您是说在创建连接、寻找到characteristics之后,需要主动自己写回调函数嘛?

点评

对,找到characteristics之后,应该是需要绑定回调,具体用什么函数,你可以看手册。  详情 回复 发表于 2021-7-13 09:05
Central这部分我也没弄过,不过我觉得你参考全程一步步弄应该能找到问题。  详情 回复 发表于 2021-7-12 17:51
 
 
 

回复

9794

帖子

24

TA的资源

版主

10
 
qiyuan 发表于 2021-7-12 17:18 我是直接使用uuid寻找characteristics,您是说在创建连接、寻找到characteristics之后,需要主动自己写回 ...

Central这部分我也没弄过,不过我觉得你参考全程一步步弄应该能找到问题。

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

1942

帖子

2

TA的资源

版主

11
 
qiyuan 发表于 2021-7-12 17:18 我是直接使用uuid寻找characteristics,您是说在创建连接、寻找到characteristics之后,需要主动自己写回 ...

对,找到characteristics之后,应该是需要绑定回调,具体用什么函数,你可以看手册。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表