你串口的初始化有误,主要在定时器赋初值那里,应该这样才能得到2400的波特率(晶振14.7456MHz) void InitUART(void) { TMOD = 0x20;//定时器T1工作方式2 SCON = 0x50;//允许接收 TH1 = 0xF0; TL1 = TH1; PCON = 0x00; EA = 1; ES = 1; TR1 = 1; }麻烦采纳,谢谢!