51单片机串口问题

改为:case ‘1’:....case ‘2’:...default:或者串口调试助手改为hex发送。
■网友
是不是被编译器优化了?试试把key声明为volatile,在uchar前声明。在main中,key实际上需要每次执行switch都更新,但编译器认为main后边用到的key都是相同的,所以都优化成了同一个变量。在类似多任务、中断结构的程序中常见这样的问题。另外,可以调试下,每次进中断,a是多少
■网友
白峰说的volatile很关键。另外,interrupt处理函数里干了没有意义的事情,完全可以放在主程序里处理。
■网友
好像你的中断里边没把RI清零啊


    推荐阅读