DSPS 3.150.2突发电流和信标内容

6个帖子/ 0新
最后一篇
千岛
离线
最后一次露面:3年4个月前
加入:2016-01-15 01:32
DSPS 3.150.2突发电流和信标内容

你好,

参考图1.如图1所示,我已经将信标间隔配置为1S,突发电流指示BLE广播。我放大了示波器的时间尺度,每个突发电流包括图3所示的3个峰值电流。为什么有3个峰值电流?信标是每秒3次播出3次吗?如果是,如何配置广播时间的数量?

此外,我想播放一个更多字节来指示每个信标中的功能,如果需要修改app_adf_func()中app_delf_addata的内容?谢谢。

布罗尔,
杰基

设备:
mt_dialog.
离线
最后一次露面:1个月2周前
职员
加入:2015-06-08 11:34
嗨Jackiechau,

嗨Jackiechau,

BLE规范表示外围设备应该在所有三个BLE通道中进行广告,因此您所看到的是在一个广告间隔期间每个信道Seperatelly(37,38,39)上的发送。您可以将设备配置为仅向一个频道进行通告,但这将减少主设备找到设备的机会。您可以通过更改GAPM_START_ADVERTESS_CMD STRUCT的CHINES_MAP成员,并将您想要广告的频道放置在所有三个通道和0x00,0x02,0x04中,分别为通道37,38,39开放。

关于广告字符串,是的,这是将数据提供给DSP项目的#Define,但您还需要更改ADV数据的长度,并在放置附加字节时要小心,您必须遵守广告字符串BLE规范的惯例。

谢谢mt_dialog.

千岛
离线
最后一次露面:3年4个月前
加入:2016-01-15 01:32
嗨mt_dialog,

嗨mt_dialog,

谢谢你回复。启用3个通道时,可以让我增加每个通道之间的广告间隔吗?例如为每个通道或任何参数进行广告添加延迟以更改此间隔。谢谢。

mt_dialog.
离线
最后一次露面:1个月2周前
职员
加入:2015-06-08 11:34
嗨Jackiechau,

嗨Jackiechau,

您可以通过更改ble_advtim_reg来操作广告通道之间的间隔,在信标示例中有一个实现,请检查ble_advtim_set()函数。寄存器的值位于USEC及其0-13位寄存器中。

谢谢mt_dialog.

千岛
离线
最后一次露面:3年4个月前
加入:2016-01-15 01:32
嗨mt_dialog,

嗨mt_dialog,

我添加了“ble_blecore.h”,并在app_sps_device_project.c中修改了以下代码,但我观察到广告频道之间的间隔没有变化。请诚挚建议。

#define ble_advtim_addr 0x400000a0.
#define ble_advtim_offset 0x000000a0.
#define ble_advtim_index 0x0000000028.
#define ble_advtim_reset 0x00000000.

__inline uint32_t ble_advtim_get(void)
{
return reg_ble_rd(ble_advtim_addr);
}

__inline void ble_advtim_set(uint32_t值)
{
reg_ble_wr(ble_advtim_addr,值);

void app_adv_func(struct gapm_start_advertise_cmd * cmd)
{
//设备名称长度
uint8_t device_name_length;
uint8_t device_name_avail_space;
uint8_t device_name_temp_buf [64];

cmd-> op.code = gapm_adv_undirect;
cmd-> op.addr_src = gapm_public_addr;
cmd-> intv_min = app_adv_int_min;
cmd-> intv_max = app_adv_int_max;
cmd-> channel_map = app_adv_chmap;

cmd-> info.host.mode = gap_gen_disoverable;
ble_advtim_set(8192);// < - 添加此项以增加广告频道的间隔
/ * ------------------------------------------------------------------------
*设置广告数据和扫描响应数据
* ------------------------------------------------------------------------ * /
cmd-> info.host.adata_len = app_add_data_max_size;
cmd-> info.host.scan_rsp_data_len = app_scan_resp_data_max_size;

mt_dialog.
离线
最后一次露面:1个月2周前
职员
加入:2015-06-08 11:34
嗨Jackiechau,

嗨Jackiechau,

选中“函数”示例,其中函数被调用以及其使用方式,并尝试将其复制在项目中,不只是将功能放在广告功能中。我使用信标项目检查,您提供的值应该是可以的,并且您应该在广告频道之间看到相当长的间隔。

谢谢mt_dialog.