沐鸣 2021-08-02 17:20 采纳率: 0%
浏览 555
已结题

电脑连接一个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;  
                }            
            }
}

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

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月10日
    • 创建了问题 8月2日

    悬赏问题

    • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
    • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
    • ¥15 特定网页无法访问,已排除网页问题
    • ¥50 如何将脑的图像投影到颅骨上
    • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
    • ¥15 netcore使用PuppeteerSharp截图
    • ¥20 这张图页头,页脚具体代码该怎么写?
    • ¥15 关于#sql#的问题,请各位专家解答!
    • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
    • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂