你好,
我正在使用BLE_MULTI_LINK-DEMO,我想在运行时调整广告数据。如果我在adv_data []中放置一个变量,则编译器抛出变量必须是const的错误。
我已经搜索了论坛,但旧的主题似乎属于较旧的/不同的芯片组。
提前非常感谢,菲利普
嗨dsandbue,
为了动态地改变68x上的数据,您需要停止广告过程(例如,通过计时器)并设置新的广告数据,然后再次启动广告。
我不太完全得到你的意思,你把一个变量放在广告数据中,能否与你想要做的事情分享一些代码?将广告数据的ADV_DATA []数组声明为常量,我认为这是编译器抱怨的原因,但这不是一个nessecity,您可以在没有const类型的情况下设置广告数据。
请看看这篇文章,https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...,也许会给你一些洞察力。
谢谢mt_dialog.
感谢您的答案,这里是一个抛出编译器错误的示例,我试图更改PXP-Reporter-Demo中的adv_data:
uint8_t test_adv = 100;
UINT8_T ADV_DATA [] = {0x05,gap_data_type_uuid16_list_inc,0x03,0x18,// = 0x1803(lls uuid)0x02,0x18,// = 0x1802(IAS UUID)test_adv,};
错误是:
构建文件:../pxp_reporter_task.c调用:交叉臂C编译器../pxp_reporter_task.c:93:9:错误:初始化器元素不是常量test_adv,^../pxp_reporter_task.c:93:9:错误:(初始化'Adv_data [6]')制作:*** [pxp_reporter_task.o]错误1
提前致谢,菲利普
对不起,您正在尝试做的是C中的有效表达式,您是乘以变量,并且您正在尝试在数组初始化中分配该变量,在数组初始化中不能具有变量。如果您想更新字符串,则可以在运行时使用memcpy才能使用该变量更新您的数组。
非常感谢你!!:-)
嗨dsandbue,
为了动态地改变68x上的数据,您需要停止广告过程(例如,通过计时器)并设置新的广告数据,然后再次启动广告。
我不太完全得到你的意思,你把一个变量放在广告数据中,能否与你想要做的事情分享一些代码?将广告数据的ADV_DATA []数组声明为常量,我认为这是编译器抱怨的原因,但这不是一个nessecity,您可以在没有const类型的情况下设置广告数据。
请看看这篇文章,https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...,也许会给你一些洞察力。
谢谢mt_dialog.
感谢您的答案,这里是一个抛出编译器错误的示例,我试图更改PXP-Reporter-Demo中的adv_data:
uint8_t test_adv = 100;
UINT8_T ADV_DATA [] = {
0x05,gap_data_type_uuid16_list_inc,
0x03,0x18,// = 0x1803(lls uuid)
0x02,0x18,// = 0x1802(IAS UUID)
test_adv,
};
错误是:
构建文件:../pxp_reporter_task.c
调用:交叉臂C编译器
../pxp_reporter_task.c:93:9:错误:初始化器元素不是常量
test_adv,
^
../pxp_reporter_task.c:93:9:错误:(初始化'Adv_data [6]')
制作:*** [pxp_reporter_task.o]错误1
提前致谢,
菲利普
嗨dsandbue,
对不起,您正在尝试做的是C中的有效表达式,您是乘以变量,并且您正在尝试在数组初始化中分配该变量,在数组初始化中不能具有变量。如果您想更新字符串,则可以在运行时使用memcpy才能使用该变量更新您的数组。
谢谢mt_dialog.
非常感谢你!!:-)