本人最近在做一个题目,要求串口通讯速度快速且不能丢码,目前使用57600的波特率上位机发下指令时单片机都会响应,但是改为115200后(其他的部分都不改),有时会对上位机发下的指令不响应,调了一整天了,感觉还是没什么头绪,希望大虾们伸出援助之手。串口程序如下:
void UART0_ISR(void) interrupt UART0_VECTOR
{
if(RI0)
{
RI0=0;
RxdReg=SBUF0;
RXDdata[UARTRecCnt++] = RxdReg;
if(UARTRecCnt>DataLen)//接受数据长于限定值归零
{UARTRecCnt=0;}
if(RXDdata[0]=='$'&&RXDdata[UARTRecCnt-1]==0xFE)//判断一条完整指令
{CMDExplain(RXDdata);ClrRXDdata(RXDdata);UARTRecCnt=0;}执行命令解析并返回数据
}
} |