单片机如何接收上位机传来的字符串?

2020-01-23 14:31发布

问题是:如何完整的接收上位机发送过来的字符串(如:abcdef),而不是单字符,上位机如果发送字符串是不是连续不停的发送?即使我们在取SBUF寄存器的数据,但在这时上位机还在不停的发送后一个字节的数据。求高手过招..给个整个理解过程,有代码就更为好了!小弟在此谢过了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
35条回答
SunnyTrip
2020-01-27 02:33
void UART_Interrupt (void) interrupt 4
{
        uchar i,l;
        uint n;
        if (RI==1)
        {
                i=0;
                l=0;
                while((RI==1)&&(l==0))
                {
                        RI=0;
                        UART_rcv_buf[i] = SBUF;
                        i++;
                        n=0;
                        if(i >= 4) {l=1;}            
                        while((RI==0)&&(l==0))                                                                  //判断是否超时
                        {
                                if(n>10000){l=1;}
                                n++;
                    }             
            }
        }
        TI = 0;
        RI = 0;
        if((UART_rcv_buf[0]==0xA0)&&(UART_rcv_buf[3]==0xFF))
        {                  
           UART_r_process();                  
        }
}

一周热门 更多>