没有具体地看,但是你说9600波特率,一个字节是100us就不对了,9600波特率是指位速,8位才一个字节,再加上起始位和停止位,那就是10位,所以一个字节需要整整1ms的时间,所以1ms读2个字节是不可能的,看看这个有没有帮助。
从pc发来的字符串是连续发送吗?是的话,你的接收程序有问题的,中断的时间那么短,9600的波特率接收一个字符的时间时1ms左右,而你程序里竟然有一个10ms的延时,想想会丢失多少个数据,中断函数里面一般都不要延时的,除非对程序结构流程非常了解。