请教大家一个PIC编程问题

2020-02-09 09:26发布

大家好,请教大家一个PIC C语言问题:

unsigned char CheckDR(void)                //检查是否有新数据传入 Data Ready
{
    if (DR==1)
        {
                return 1;//仿真时,DR =1,return 1.
        }
        else
        {
                return 0;
        }
}

if(CheckDR())      //但程序来到这里时出问题了,这里CheckDR()的返回值是1,但不知道为什么它不进入函数里,仿真的时候,光标在RxPacket();这里
{                  //停了一下,一闪而过的样子,就跑到下一段程序了。
      RxPacket();
}


当我写成这样时,就能进入程序,什么原因?
unsigned char CheckDR(void)                //检查是否有新数据传入 Data Ready
{
    if (DR==1)
        {
            DR_flag = 1;
                return 1;
        }
        else
        {
                DR_flag = 0;
                return 0;
        }
}   

  CheckDR();
  if(DR_flag==1)
  {
    RxPacket();//此时能正常进入此函数。
  }
希望大家指点迷津!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。