| 用到m051 UART  ,用的UART中断接收数据,为什么我每接受一次就得加点延时才能正确接收呢? 下面是我接收中断的代码:
 void UART0_IRQHandler(void)
 {
 receiver_count = 0;
 while(UA0_ISR&RDA_IF)
 {
 while (UA0_FSR & RX_EMPTY);
 rec_buff[receiver_count] = UA0_RBR;
 receiver_count++;
 delay_ms(1);
 }
 if((CRCSS(rec_buff,receiver_count))==0&&(receiver_count==5+rec_buff[2]))
 {
 receive_right=1;   //接收数据正确标志位
 rec_err_count=0;
 }
 data_save();   //保存,校验不成功,不保存
 }
 |