最近在写51的串口,遇到一些问题,折腾了十天左右,终于解决了,串口接收数据,用的中断模式,在一个有四层嵌套的while循环中,最底层的循环中使用串口数据,结果发来的数据不正常,一般是第一次没有发过来,第二次的时候一起把第一次的数据一起送上来,而且这种现象是我在用到xdata数据以后就会出现(不管程序中哪个地方用到),要是都用idata就不会出现这个问题,很是奇怪,说实话,我至今没有找到原因,但是找到一个解决办法,分享一下:
在最底层的while循环中,不采用中断接收串口数据,而是采用查询的方式接收串口数据,这样的话就正常了