if ((NRxBuff1==N_XY_BAO1)&&(校验地址位)) //数据接收完后校验地址 { q2=0; for(q1=0;q1<N_XY_BAO1-2;q1++) q2 += rxbuffer[q1]; q2 += rxbuffer[N_XY_BAO1-1]; if( (q2 == rxbuffer[N_XY_BAO1-2])) { for(q1=0;q1<N_XY_BAO1;q1++) { aRxBuff1[q1]=rxbuffer[q1]; } } NRxBuff1=0; } if ((NRxBuff1==N_XY_BAO1)) //数据接收完后不校验地址 { q2=0; for(q1=0;q1<N_XY_BAO1-2;q1++) q2 += rxbuffer[q1]; q2 += rxbuffer[N_XY_BAO1-1]; if( (q2 == rxbuffer[N_XY_BAO1-2])&&(校验地址位))//校验地址和和校验 { for(q1=0;q1<N_XY_BAO1;q1++) { aRxBuff1[q1]=rxbuffer[q1]; } } NRxBuff1=0; } 这个是IAR开发环境下的串口接收程序,这2个程序执行结果 aRxBuff1中的内容 竟然不一样 ,上面一个开始时候正常,后面的一直正常。 |