你好,
当我需要时,我有一个问题让芯片发送广告。
我需要做的是将两个不完整的服务ID列表添加到单个广告中,因为我的客户要求它。
#define user_advertise_data“\ x03”\
adv_type_incomplete_list_16bit_service_ids \
“\ x70 \ x31”\
“\ x03”\
adv_type_incomplete_list_16bit_service_ids \
“\ x70 \ x30”
将此导致调试器直接停止,无需发送任何广告,它将在NMI_Handler.c中结束。如果我删除其中一个不完整的列表,则会发送广告。
作品:
#define user_advertise_data“\ x03”\
adv_type_incomplete_list_16bit_service_ids \
“\ x70 \ x31”
还有:
#define user_advertise_data“\ x03”\
adv_type_incomplete_list_16bit_service_ids \
“\ x70 \ x30”
还有:
#define user_advertise_data“\ x03”\
adv_type_incomplete_list_16bit_service_ids \
“\ x70 \ x31”\
“\ x03”\
adv_type_complete_list_16bit_service_ids \
“\ x70 \ x30”
我还在SDK 6.0.10.511上用DA14585尝试过......结果相同。
我希望有人能给我一个提示,为什么筹码拒绝与不完整的IDS发送广告。可以通过使用SDK的鞍座示例来复制,并将其设置为user_config.h中的广告数据。
此致,
蒂姆
嗨tikoope,
在用户广告数据中,您不允许在您的案例中具有两倍相同的标记,在您的案例中,在adv_type_incomplete_list_16bit_service_ids中。堆栈将返回错误,您将获得NMI。如果您希望有两个不同的不完整的服务,则应定义SER广告数据如下:
#define user_advertise_data“\ x05”\ adv_type_incomplete_list_16bit_service_ids \
“\ x70 \ x31 \ x70 \ x30”
长度:0x05(ADV数据中的5个字节:0x02 0x70 0x31 0x70 0x30)
标签:ADV_TYPE_INCOMPLETE_LIST_16BIT_SERVICE_ID(= 0x02)
第一个不完整的服务:0x70 0x31
2st不完整的服务:0x70 0x30
谢谢,PM_DIALOG.