我这if else语句有问题吗?
if(a==0)
{
a=1;
GAP_UpdateAdvertisingData(simpleBLEPeripheral_TaskID,
TRUE,
sizeof(advertData),
advertData ); //原广播数据
}
else
{
a=0;
GAP_UpdateAdvertisingData(simpleBLEPeripheral_TaskID,
TRUE,
sizeof(advertData_Update),
advertData_Update ); //更新广播数据
}
//
仿真发现,if执行,然后else也执行,下一次else执行,依次循环,结果观察,广播只有else里边的数据,广播一秒,停一秒,
大佬帮我看看,是不是我失忆了。
您现在是想要实现什么功能呢?
我就是想测试一下,动态广播,广播间隔100ms,一秒钟执行一次换广播,通过if else实现,然后我发现,广播一秒,停一秒,广播内容都是else里边的,
仿真发现,a=0,执行if,执行a=1;执行
GAP_UpdateAdvertisingData(simpleBLEPeripheral_TaskID,
TRUE,
sizeof(advertData),
advertData ); //原广播数据
然后(问题在这),直接执行else里边的
GAP_UpdateAdvertisingData(simpleBLEPeripheral_TaskID,
TRUE,
sizeof(advertData_Update),
advertData_Update ); //更新广播数据
else里边a=0;没有执行;
然后下一秒,a=1;执行else
现象是1秒钟广播else里边的内容,连续大概10条,一秒钟无广播,
就是if广播语句执行过后,直接跑到,else里边的广播语句,其它正常,
这个函数周期1秒,
a=0,执行1,2,4,
下次调用,a=1时,执行3,4,
下次调用,1,2,4,
再下次,3,4,
这样循环。
今天发生了好多诡异的事情。
建议全部重新编译
a 是全局变量吗? 如果是临时变量,退出函数重入会重新初始化的。
函数内部定义的