电脑连接一个1号Lora模块,通过上位机发送数据给另一个连接51单片机串口的2号Lora模块,如果串口接收到数据就触发接收中断,在接收中断服务函数中控制LED灯亮灭

电脑连接一个1号Lora模块,通过上位机发送数据给另一个连接51单片机串口的2号Lora模块,在51单片机中烧入程序,如果串口接收到数据就触发接收中断,在接收中断服务函数中控制LED灯亮灭。以上是希望达到的效果,但是实际操作起来,把数据发到单片机上时中断一直没有被触发,LED灯没有亮。希望各位帮我讲解疑惑
还有一个奇怪的现象,用数据线将单片机连接电脑上另一个串口调试助手,会显示1号Lora发过来的数据,但是LED灯还是不亮,那应该中断应该就是没触发吧
以下是代码:

void UART0_RCV (void) interrupt 4    //接收中断服务函数
{
    if(RI)
    {
        
        reflag=1;
        led=0;
        delay(10000);
        led=1;
        SBUF=SBUF;
//        RX1_Buffer[uart1_wr] = SBUF;
//        if(++uart1_wr >= BUF_LENTH)    uart1_wr = 0;
        RI = 0;
    }
    if(TI){
        TI = 0;
        led1=0;
        delay(10000);
        led1=1;
//        B_TI = 1;
    }
}

void main(void)  //主函数中有一些控制LCD屏幕显示传感器数据的代码和2号Lora将传感器数据发送出去的代码,可以忽略,主要是希望通过接收中断服务函数使标志变量reflag置1,加上LED灯用作验证中断服务函数是否被触发,但是灯一直没亮,所以应该是没有触发中断吧
{
            uchar RHdata[5];    
            uint i=0;
            uchar *p;
            
            //uchar uart1_rd = 0;
            //uchar uart1_wr = 0;
            UartInit();   //串口初始化
            Lcd_Init();   //lcd1602
            while(1)
            {
                if(reflag)
                { 
                    ES = 0;
                    DHT11_delay_ms(250);
                    RH();
                    p=RH();
                    RHdata[0]=*p;
                    RHdata[1]=*(p+1);
                    RHdata[2]=*(p+2);
                    RHdata[3]=*(p+3);
                    RHdata[4]=*(p+4);
                    LcdWrCmd(0x80);   //lcd1602
                    DHT11_delay_ms(250);
                    ES = 1;
                    loraSend_dataget_RH(0x00,0x04,23,RHdata);
                    for(i=0;i<5;i++)
                    {
                        RHdata[i]=0;
                    }
                    TI=0;
                    for(i=0;i<9;i++)
                      {     LcdWrDat(rec_dat[i]);  }
                    reflag=0;  
                }            
            }
}

//希望各位帮我讲解疑惑