大家好。
在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;
msg-> filter_duplic = scan_filt_duplic_en;
msg-> interval = app_scan_interval;
msg-> window = app_scan_window;
UART_WRITE(“\ r \ 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(“\ r \ ns7 \ r \ n”,6,null);//添加我
app_scanning();
}
}
休息;
在app_set_dev_config_complete_func函数中:
void app_set_dev_config_complete_func(void)
{
//我们现在处于初始化状态
ke_state_set(task_app,app_db_init);
//在数据库中添加第一个必需的服务
if(app_db_init()))
{
//当数据库已经开始了广告时
UART_WRITE(“\ r \ 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,所以
外围改变这个地方:
#define cfg_lp_clk 0x00到0xaa;
中央也改变这个地方:
#define cfg_lp_clk 0x00到0xaa;
没有变化
没有其他地方更改了。
袁汉武
大家好。
我使用了“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中调试。
当我这样的时候:
///广告最小间隔
#define app_adv_int_min 0x30.
///广告最大间隔
#define app_adv_int_max 0x30.
我点击dubug --run-(扫描递盖骨头广告数据) - dubug。
当我这样的时候:
///广告最小间隔
#define app_adv_int_min 0xa0.
///广告最大间隔
#define app_adv_int_max 0xa0.
我点击dubug --Run ---杜巴。
我插入提示告诉我很多时间通过,也无法扫描百年广告数据。
怀用?
对于低堆积,所以广告间隔应该设置多长时间是最好的?
谢谢。
嗨,mhv_dialog,
我已经得到了。
现在结果是:
外围:
0.5秒的广告差距。
中央:
每7.5秒扫描每7.5秒,但消耗量为3.6mA平均值。
扫描速度不是很快,但消费已经很高。
Wyh以及如何使扫描结果速度更快,更有效?
或者如何获得最佳平衡。
你怎么解决这个问题?我现在得到了同样的问题,谢谢。
“不进入GapM_Adv_Report_ind_Handler”