调试通信单步调试没用的,因为从发送数据开始必须释放CPU,否则程序止步不前,不可能查到接受数据的。提供一个思路:1、只在一个片子里保留发送程序,比如让它每1秒或500毫秒发出一个AA,另一个片子里保留接收程序,在中断接收中判断是否AA,是则点个灯之类的;2、在这种最基本的框架下,再用keil和proteus联调,不要单步,通过在接收程序中的判断出AA后打个断点,再让程序全速运行,看看是否会卡在断点处;3、如果上述还是不行,那问题指定出在软件上了,硬件就那三根线。