Panchip Cop.

查看: 7706|回复: 9

BLE与XN297L通信资料(此贴已废除,最新资料参考广播蓝牙版块)

[复制链接]

6

主题

49

帖子

1万

积分

磐启员工

Rank: 7Rank: 7Rank: 7

积分
10796
发表于 2018-11-1 18:25:25 | 显示全部楼层 |阅读模式
本帖最后由 刘敏 于 2021-8-23 12:49 编辑

一、手机端发送,XN297L接收
1、Android.zip
     android工程以及动态库,可发送字节长度为14-16bytes(取决于与xn297l通信地址设置为3-5bytes)。

2、IOS.zip
     ios工程,可发送字节长度为16-18bytes(取决于与xn297l通信地址设置为3-5bytes)。

3、STM_RX.zip
     使用STM8底板的接收程序,默认的地址为:C1,C2,C3,C4,C5。通信长度1byte。
     客户测试时,将xn297l设置为正常的接收状态,确认地址和通信长度与app设置一致即可收到数据。
-----------------------------------------------------------------------------------------------------------------------------------
2019/10/28  
增加 IOS 13.0 13.1.zip  修改BleUtil.h中PDU_EXHEADER_LENGTH的值,将原来的13改为16,解决ios系统由12升级到13后xn297l无法正常收到数据的问题。
客户可在程序中读取ios的系统版本来设置PDU_EXHEADER_LENGTH值来做到不同系统兼容。
XN297L接收蓝牙数据配置方案.pdf (615.15 KB, 下载次数: 2009)
STM8接收蓝牙数据 - 使用说明书.pdf (357.08 KB, 下载次数: 1785)





更新资料楼层地址链接


回复

使用道具 举报

6

主题

49

帖子

1万

积分

磐启员工

Rank: 7Rank: 7Rank: 7

积分
10796
 楼主| 发表于 2019-12-11 15:37:43 | 显示全部楼层
本帖最后由 刘敏 于 2020-12-28 17:21 编辑

20191211资料更新,主要更新内容包括:
1、Android APP开放加扰部分代码; 解决部分手机提示不能发送蓝牙广播的问题。
2、IOS APP 修改,兼容不同版本的系统。
3、增加XNS125发送蓝牙广播的例程。
4、增加android手机扫描蓝牙广播的例程。


20200706资料更新:
1、增加微信小程序通信示例。
回复

使用道具 举报

6

主题

49

帖子

1万

积分

磐启员工

Rank: 7Rank: 7Rank: 7

积分
10796
 楼主| 发表于 2018-11-1 18:45:07 | 显示全部楼层
本帖最后由 刘敏 于 2020-12-28 17:19 编辑

二、XN297L发送,手机端接收

1、STM8_TX.zip
     使用STM8底板的发射程序,发送数据最大长度为24bytes(可通过底板按键设置字节长度和暂停/开始发送)。


2、BLE_XNS102_TX.zip
     XNS102发射程序,例程固定发送8bytes长度。


3、扫描ble广播包
     下载支持扫描ble广播包的app,建议使用 nRF Connect 。如下图所示,xn297l 发送8bytes 数据,MAC地址为11:22:33:44:55:66。
       ble_rev.jpg
XN297L发送蓝牙数据配置方案.pdf (494.7 KB, 下载次数: 1806) STM8发送蓝牙数据 - 使用说明书.pdf (382.59 KB, 下载次数: 1588)



回复

使用道具 举报

0

主题

1

帖子

28

积分

注册客户

Rank: 3Rank: 3

积分
28
发表于 2019-1-22 16:06:01 | 显示全部楼层
请问手机发送 XN297接收的话,手机一秒时间内能发多少包数据?
回复

使用道具 举报

6

主题

49

帖子

1万

积分

磐启员工

Rank: 7Rank: 7Rank: 7

积分
10796
 楼主| 发表于 2019-4-10 17:37:27 | 显示全部楼层
唯控电子 发表于 2019-1-22 16:06
请问手机发送 XN297接收的话,手机一秒时间内能发多少包数据?

受限于手机的操作系统ble的广播频率,目前测试Android为100ms一次。IOS能测到30ms一次。
回复

使用道具 举报

6

主题

49

帖子

1万

积分

磐启员工

Rank: 7Rank: 7Rank: 7

积分
10796
 楼主| 发表于 2020-4-7 09:42:52 | 显示全部楼层
刘海兵 发表于 2019-12-11 15:37
20191211资料更新,主要更新内容包括:
1、Android APP开放加扰部分代码; 解决部分手机提示不能发送蓝牙广 ...

注意:android手机扫描蓝牙广播的例程仅供参考,实际测试可能存在问题,推荐测试的时候使用nrf connect。
回复

使用道具 举报

2

主题

6

帖子

45

积分

注册客户

Rank: 3Rank: 3

积分
45
发表于 2020-6-28 17:32:45 | 显示全部楼层
使用 BLE_XNS102_TX_V1.0 测试xns102 的tx 数据负载选择8 9 都能用nrf connect收到数据 但是数据宽度改成其他值就收不到了 最大payload不是24byte吗?
回复

使用道具 举报

2

主题

6

帖子

45

积分

注册客户

Rank: 3Rank: 3

积分
45
发表于 2020-6-28 17:48:46 | 显示全部楼层
深圳国汉科技 发表于 2020-6-28 17:32
使用 BLE_XNS102_TX_V1.0 测试xns102 的tx 数据负载选择8 9 都能用nrf connect收到数据 但是数据宽度改成其 ...

研究了下 给出结论:

  1.                 rf_csn=0;
  2.                 rf_buf=W_REGISTER+FEATURE;
  3.                 SPI_RW();
  4.                 rf_buf=0x38;   // payload > 33 : 0x38 payload <= 33 : 0x20
  5.                 SPI_RW();
  6.                 rf_csn=1;
复制代码
回复

使用道具 举报

6

主题

49

帖子

1万

积分

磐启员工

Rank: 7Rank: 7Rank: 7

积分
10796
 楼主| 发表于 2020-7-6 14:58:32 | 显示全部楼层

XN297l TX_buff有两个档位,分别为32字节和64字节,通过feature寄存器设置。默认是设置为32字节,意思是正常情况下,我们发射的数据长度不能超过32字节。在发送广播蓝牙的应用时,我们实际发射的字节长度为23+payload,所以当有效负载>9时,实际长度>32。我们应该设置feature寄存器将TX_buff设置为64字节。
回复

使用道具 举报

0

主题

2

帖子

2

积分

新注册客户

Rank: 1

积分
2
发表于 2024-5-16 11:18:12 | 显示全部楼层
感谢楼主分享,请问APP是用什么编译的呢?
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表