void UARTInrerrupt(void) interrupt 4
{
unsigned char ch;
if(RI)
{
RI=0;
ch=SBUF;
Buff[count++]=ch;
count=count%100; //100为缓冲区大小
}
if(TI)
{
TI=0;
busy=0;
}
}
上面是我一般运用的串口接收中断程序。然后去主程序中或者中断里去写个Judege_SeriesData()解析数据。
各位有什么好的方法,确定缓冲区大小开辟多大才合适呢,如果一次我接收96个字符,多大才合适呢。不会溢出,不会因为过大而影响使单片机工作效率降低呢。 |