你好,
我一直在尝试让DA14583的基本扫描功能工作。我使用了SDK v3.0.10.1的模板项目,只做了一些小修改。
-修改配置角色为GAP_CENTRAL_MST;
- 'app_set_dev_config_complete_func'被修改,因此它开始扫描而不是发布
空白app_set_dev_config_complete_func(空白)
{
//我们现在处于初始化状态
ke_state_set (TASK_APP APP_DB_INIT);
//在数据库中添加第一个需要的服务
如果(app_db_init ())
{
//没有服务添加到DB ->开始扫描
app_start_scan ();
}
返回;
}
空白app_start_scan(空白)
{
struct gapm_start_scan_cmd *msg = ke_msg_alloc(gapm_start_scan_cmd, TASK_GTL,
sizeof (struct gapm_start_scan_cmd));
味精- >模式= GAP_OBSERVER_MODE;
味精- > op。代码= GAPM_SCAN_ACTIVE;
味精- > op。addr_src = GAPM_PUBLIC_ADDR;
味精- > filter_duplic = SCAN_FILT_DUPLIC_DIS;
味精- > filt_policy = SCAN_ALLOW_ADV_ALL;
味精- >间隔= 10;
味精- >窗口= 5;
ke_msg_send ((void *)味精);
返回;
}
—在da14580_config.h中启用了以下配置文件:
#定义CFG_PRF_DISC
#定义CFG_PRF_PXPM
我们在自己的硬件和开发板上测试了这些变化。我尝试了各种不同的设置,但就是无法让调试器命中gapm_adv_report_ind_handler函数中的断点。
此外,我们尝试了接近报告示例,它工作得很好,所以一定有一些设置或我们的代码中缺少的东西。不幸的是,我们不能使用接近报告的例子,因为所有的代码必须在BLE芯片中。
你知道,我们需要什么来让这个函数工作吗?
你应该将源任务改为TASK_APP而不是TASK_GTL。如果您在外部处理器上运行代码,则使用Gtl。
这样问题就解决了,谢谢。