一个中断处理的问题,求助!

2019-07-15 19:09发布

  1. void main(void)
  2. {

  3.     nRF905Init();
  4.     Config905();
  5.     InitUART();

  6.     while(1)
  7.    {
  8.                 if(tmp=='*')
  9.                 {
  10.                         BELL = 0;   //蜂鸣器,调试用
  11.                         delay(50);
  12.                         BELL = 1;       
  13.                        
  14.                         for(i=0;i<10;i++)
  15.                         {
  16.                                 TxRxBuf[i] = JD[i];  //把数据送给发送缓冲
  17.                         }

  18.                         TX(); //发送数据
  19.                 }
  20.     }
  21. }
复制代码简单来说,是A机的串口接收到GPS数据后,发送给B机。
上面这种情况,能收到数据,蜂鸣器响。
可是,当我把发送数据的程序放到串口中断时(如下所示),就只有蜂鸣器响,而B机没有收到数据。
  1. //串口中断程序
  2. void ser_int (void) interrupt 4 using 1
  3. {

  4.         //以上为省略
  5.        
  6.         if(tmp=='*')
  7.         {
  8.                 BELL = 0;   //蜂鸣器,调试用
  9.                 delay(50);
  10.                 BELL = 1;       
  11.                
  12.                 for(i=0;i<10;i++)
  13.                 {
  14.                         TxRxBuf[i] = JD[i];  //把数据送给发送缓冲
  15.                 }

  16.                 TX(); //发送数据
  17.         }

  18. }
复制代码
这个时候,蜂鸣器响了,可是为什么B机却没有收到数据呢?求助大神!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。