你好,
我正在尝试在DA14531芯片上运行直接广告,但我无法看到它工作,以下是我添加的代码(基于extent_periphertial_template):
static const struct default_app_operations user_default_app_operations = {.default_operation_adv = user_advertise_operation,};void user_advertise_operation(void){app_easy_gap_dircated_advertise_start(0); // 0和1具有相同的结果}
我试图通过将这部分代码添加到app_direct_advertise_complete乐趣来重新启动广告。
... user_app_callbacks的一部分.app_on_adv_direct_complete = app_direct_advertise_complete,... void app_direct_advertise_complete(const uint8_t x){app_easy_gap_directed_advertise_start(0);}
我使用BLE Sniffer应用程序检查Adv Packet,我还通过使用中央实现应用程序来查找我的设备和其他DA14531。
如果我在app_direct_advertise_complete中插入断点,则x可禁止的x值为0x45(表示超时错误)。
我有两个问题:
如果我必须在手机上看到包(在BLE嗅探器应用程序中),如果我在user_adv_conf结构中输入的.PEER_ADDR中输入了错误的中央地址?
如何检查广告是否正常工作(我只有开发套件 - USB板)?
设备:
嗨adam.stroz,
谢谢你的问题。在回答您的问题之前,我首先要突出显示直接广告用于建立非常快速的连接。根据Bluetooth LE规范,如果您知道中央BD地址,您可以宣传指示。
请注意,如果您使用的是移动电话作为中央设备,则手机通常使用随机BD地址,这意味着BD地址将不断变化,因此,您将无法知道。可以仅在中央使用公共BD地址的情况下完成定向广告,并且每次都没有改变。
中央的BD地址应在user_config.h头文件中的user_adv_config结构的.peer_addr_type中添加。然后,App_easy_gap_dircated_advertise_start()API应在User_App_Adv_Start()中使用适当的BD地址到上述字段。在直接广告中,PDU仅包括设备的BD地址。
请参阅下面的一个快速示例,展示具有高占空比的定向广告。请在SDK6.0.14的BLE_APP_PHERIZEAL示例中使用此操作。
SDK位置:6.0.14.1114 \ Projects \ target_apps \ ble_examples \ ble_app_peripheral \ keil_5
1.使用以下user_app_adv_start()。从user_peripher.c文件中删除app_addata_update_timer_used,并注释出app_add_ad_struct()。
2,如果您运行它,将会发生NMI。为避免NMI,您有两种选择:
A]当定向的除法超时时,将设备放入睡眠模式。为此,您应该在app_easy_gap_dircated_advertise_start(0)之后添加Arch_set_extended_sleep(false)。如果它仍然处于活动模式,它将等待中断,WDOG将超时,将发生NMI。
b]使用。app_on_adv_direct_complete = user_app_adv_direct_complete才能重新启动adverting。(与无向广告相同)
3.当指向广告超时时,状态将是GAP_ERR_TIMEOUT(= 0x45)。
当然,您应该在user_adv_config struct中添加合适的BD地址
有2种模式可用于指示广告:高占空比和低占空比
i]高占空比:广告将持续〜1.28秒(ADV间隔为1.25ms)。如果没有中央连接到外围设备,则会发生超时。
II}低占空比:外围设备将永远使用user_config.h中定义的adv区间通告。
在这两种情况下,BLE嗅探器可用于捕获ADV_DIRECT_IND广告数据包。
谢谢,PM_DIALOG.
你好,
我测试了你写信给我的东西:
在DA14531模块上,我启动BLE Central应用程序,下面的Config(我只使用公共BD Addres仅用于测试目的):
在DA14531(USB DEV套件)上我开始BLE_APP_PERITERAL(使用您写信给我的设置):
但遗憾的是,我无法在Terminall中看到任何东西(我只看到其他设备),在BLE Sniffer中,我也没有看到DA14531(USB Dev Kit)的任何数据包。
嗨adam.stroz,
感谢您到达论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.
我们将在未来几天修复错误/优化搜索和标记。
此票据已移植:https://www.dialog-seminile.com/produ亚博电竞菠菜cts/bluetooth-low-energy?post_id=11459#tab-support_tab_content.
我会尽快在新的论坛线程上回复你。
谢谢,PM_DIALOG.