单片机串口通讯 中断法和查询法

2025-01-05 08:32:48
推荐回答(4个)
回答1:

while(1)
{
    if(flag==1)
    {
        ES=0;
        flag=0;
        for(j=0;j<3;j++)
        {
            SBUF=inbuffer[j];//【这边要发送多个就要可以用for循环】
            while(!TI);
            TI=0;
        }
        
        ES=1;
    }
}

void ser() interrupt 4
{
    if(RI==1)//【串口中断函数中要区分是接收中断还是发送中断】
    {
       RI=0;
       inbuffer[i++]=SBUF;
       if(i==3)
       {
           i=0;
           flag=1;
       }
    }
}

回答2:

SM0 = 0;
SM1 = 1;
REN = 1;

注意顺序。

回答3:

没发现哪里有问题啊

回答4:

void ser() interrupt 4
{
if(RI==1)

{
RI=0;
SBUF=SBUF;
}
}