下面的代码在我执行单步仿真时,它直接跳过判断语句,执行下一条语句。比如说,我当前仿真到Rx = 0这里,然后下一步它会直接跳到了Spk_Mute = 0了,中间的if()语句都直接跳过去了,而且还不能在该语句设置断点。然后我继续下一步,它又跳到了Mic_Mute = 0这里,中间的if()语句也是直接跳过去了。我查看CX20709[3]的值是0x18。前几天测还好好的,今天测就出现这种令人抓狂的事,有哪位兄弟知道这是怎么回事??求帮忙指点!!bool IRcvStr(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin_SDA,GPIO_Pin_TypeDef GPIO_Pin_SCL,uchar sla,uchar suba1,uchar suba2,uchar *s,uchar no)
//读取麦克风和喇叭状态
while (!Rx)
{
IWDG->KR = 0xAA;
Rx = IRcvStr(GPIOB, SDA, SDL, 0x28, 0x10, 0x18, &CX20709[3], 1);
}
Rx = 0;
if ((0x01 & CX20709[3]) == 0x01)
{
Spk_Mute = 1;
}
else
{
Spk_Mute = 0;
}
if ((0x08 & CX20709[3]) == 0x08)
{
Mic_Mute = 1;
}
else
{
Mic_Mute = 0;
} |