在软件配置芯片的波特率为9600后,接口可以正常通信,但是不知什么原因,板卡掉电上电若干次后,波特率就变成了230400的速率,而且是所有接口都变成了这个速率,一直找不到原因。
补充:0号口配置参数
REG_IER_ADDR = BIT_IER_RESET ;
mDelay100mS( );
mDelay100mS( );
mDelay100mS( );
mDelay100mS( );
REG_IER_ADDR = REG_IER_ADDR &0x0f;
mDelay100mS( );
mDelay100mS( );
LCR = REG_LCR_ADDR ;
LCR |= (1<<7);
REG_LCR_ADDR = LCR;
REG_DLL_ADDR = 0x0c;
REG_DLM_ADDR = 0x00;
LCR &= ~(1<<7);
REG_LCR_ADDR = LCR;
REG_LCR_ADDR = (0 << 4)| (0 << 3)| (0 << 2)| (3 << 0);
mDelay100mS( );
REG_FCR_ADDR = 0x07;
mDelay100mS( );
REG_IER_ADDR = 0x04|0x01;
mDelay100mS( );
REG_MCR_ADDR = BIT_MCR_OUT2 ;
mDelay100mS( );
您好,针对您的这个问题,您可以在每次上电的时候读写CK2Xbit位以及DLL和DLM。看您的这个现象,原因大概率是CK2X位变为了1。从而出现时钟从1/12分频变为了2倍频。出现了所谓的24倍差距。