void init_serialcom 没在main里面调用,你们的串口没初始化。那句 TI=1; 什么用。while (TI== 0); TI= 0 ;中断里面清了 这里再清一遍??cont++;只有加,没有清零,你只准备接受一次???不带包头识别,你怎么知道什么时候cont应该等于0.总之还有很多问题。