大家好。
在dsps项目“DA14580_DSPS_3.150.2”中,主机发送扫描cmd,但不扫描任何外设设备。
但在手机应用中可以扫描终点设备。
为什么 ?
请帮我。
代码不会改变,但是通过UART添加一些提示.PLAY是按照:
void app_scanning(无效)
{
ke_state_set(task_app,app_connectable);
//创建一个核心消息以开始扫描
struct gapm_start_scan_cmd *msg = (struct gapm_start_scan_cmd *)KE_MSG_ALLOC(gapm_start_scan_cmd, TASK_GAPM, TASK_APP, gapm_start_scan_cmd);
//最大对等连接
msg-> mode = gap_gen_discovery;
msg-> op.code = gapm_scan_passive;
msg-> op.addr_src = gapm_public_addr;
味精- > filter_duplic = SCAN_FILT_DUPLIC_EN;
味精- >间隔= APP_SCAN_INTERVAL;
msg-> window = app_scan_window;
uart_write(“\ \ nS7 \ r \ n”,6日,NULL);/ / / / / /添加我
//发送消息
KE_MSG_SEND(MSG);
}
在GAPM_CMP_EVT_HANDLER函数中添加提示:
案例GAPM_SCAN_PASSIVE:
案例GAPM_SCAN_ACTIVE:
{
if(param-> status == gap_err_canceled)
{
UART_WRITE(“\ r \ ns6 \ r \ n”,6,null);//添加我
app_connect ();
}
别的
{
uart_write(“\ \ nS7 \ r \ n”,6日,NULL);//添加我
app_scanning();
}
}
休息;
在app_set_dev_config_complete_func函数中:
空白app_set_dev_config_complete_func(空白)
{
我们现在处于初始化状态
ke_state_set(task_app,app_db_init);
//在数据库中添加第一个必需的服务
如果(app_db_init ())
{
//当数据库已经开始了广告时
uart_write(“\ \ nS1 \ r \ n”,6日,NULL);//添加我
app_scanning();
}
}
在GAPM_ADV_REPORT_IND_HANDLER函数中:
msgid,lapm_adv_report_ind_handler(ke_msg_id_t const,
Const struct gapm_adv_report_ind *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
/*
if(!memcmp(&param-> report.data [3],app_dflt_addata,app_dflt_add_data_len)))
{
//保存找到的bd_addr到全局变量
memcpy(&connect_bdaddr,param-> eport.addr.addr,sizeof(struct bd_addr));
UART_WRITE(“\ r \ ns5 \ r \ n”,6,null);//添加我
app_cancel_scanning();
}
别的
* /
UART_WRITE(“\ r \ ns6 \ r \ n”,6,null);//添加我
return(ke_msg_consumed);
}
我在da14580_config中关闭睡眠模式。
没有改变任何事情。
结果是:
S1
S7
S7
S7
S7
每个S7提示大约有10秒的间隔。
我使用“DA14580_DSPS_3.150.2”,sps_device和sps_host。
但不进入GAPM_ADV_REPORT_IND_HANDLER函数。
手机应用程序可以扫描14580年代的终点设备。。
为什么不进入GapM_Adv_Report_ind_Handler函数?
等你的帮助。
你好,
你在外围方面改变了什么吗?代码如何在任何一方都有修改的情况下为您工作?
你好,
因为没有32.768k,所以
外围改变这个地方:
#定义CFG_LP_CLK 0x00到0xAA;
中央也改变这个地方:
#定义CFG_LP_CLK 0x00到0xAA;
没有变化
没有其他地方更改了。
YuanhangWu
大家好。
我使用了“da14580_dsps_3.150.2”sps_host。
当GAPM_START_SCAN_CMD发送时,
但不进入GAPM_ADV_REPORT_IND_HANDLER函数。
手机应用程序可以扫描14580年代的终点设备。。
为什么 ?
如何使用SPS_HOST项目获取终点设备广告数据?
在某个地方获取广告数据存储?
谢谢。
或者需要等待很长时间才能扫描出广告数据,
如何更快地扫描广告数据?
谢谢。
我不知道该怎么帮你。我已经让当地代表直接联系你了。
我也有类似的问题。当我使用passive_scan时,没有任何adv数据。你能帮我吗?
我的代码有一个错误,所以问题解决了。谢谢。
嗨,夏季,2014年,
你的问题解决了。
所以,我想要你帮助我。
在da14580_dsps_3.150.2中使用的主机角色,
如何使扫描结果更快,更有效?
谢谢。
我没有使用da14580_dsps_3.150.2,而是使用da14580_sdk_3.0.4.0 \ host_apps \ windows \ proximity \ monitor。当然,我修改了PC上的项目,在STM32上工作,作为运行BLE堆栈的一个外部主机和DA14580,它是DA14580_SDK_3.0.4.0 \ DK_APPS \ KEIL_PROJECTS \ PROXIMITY \ MONITION_FE_USB。由于一些商业原因,我不能向您提供项目,但我认为您可以查看这些项目来获得灵感,事实上,它很容易。
嗨,mhv_dialog
我测试多次使用过的主机扫描广告数据,只需一次扫描Gapm_adv_report_ind_handler函数中的广告数据。
所以我想得到扫描结果更快,更有效。
怎么办?
谢谢。
嗨,mhv_dialog,
我的意思是主机设备第一次或第二次扫描,然后扫描出外围设备的广告数据。
是的,使用短数字扫描时间获取扫描结果。
怎样才能做到呢?
谢谢。
嗨,mhv_dialog,
我只是在KEIL u4中调试。
当我这样设置:
///广告最小间隔
#定义APP_ADV_INT_MIN 0 x30
///广告最大间隔
#定义APP_ADV_INT_MAX 0 x30
我点击dubug --run-(扫描递盖骨头广告数据) - dubug。
当我这样设置:
///广告最小间隔
#define app_adv_int_min 0xa0.
///广告最大间隔
#定义xa0 APP_ADV_INT_MAX 0
我点击dubug --Run ---杜巴。
我插入提示告诉我很多时间通过,也无法扫描百年广告数据。
Wyh吗?
对于低堆积,所以广告间隔应该设置多长时间是最好的?
谢谢。
嗨,mhv_dialog,
我明白了。
现在结果是:
外围:
0.5秒的广告差距。
中央:
每7.5秒扫描每7.5秒,但消耗量为3.6mA平均值。
扫描速度不是很快,但消费已经很高。
Wyh以及如何使扫描结果速度更快,更有效?
或者如何获得最佳的平衡。
你怎么解决这个问题?我现在得到了同样的问题,谢谢。
“不进入GapM_Adv_Report_ind_Handler”