请教,帮我看看这个串口问题,好吗?
void ComInStr() interrupt 4 //串行口中断 { if(RI) { if (j>4) { j=0; receive=1; //接收标志置位 } else { rece[j]=SBUF; j++; } RI=0; } }
main() { while(1) { if(receive) { Sendtex(); receive = 0; } } } 大哥: 您好! 我这个串行口中断,还不是很好, 因为,假设开始 发了 '111' 3 个字符 隔了一段又发 '11' 2 个字符,总共是 5个字符 那么 j = 5 ,eceive=1; //接收标志置位 , 本来这样的情况是不符合要求的,
那要怎么处理啊,一般是设置多久如果还没有接收到 5 个字符,则 j 重新置 0 啊 这样的程序怎么写?
谢谢!
|