我正在使用UART of lPC1788
,因爲我對PCLK as 12MHZ
進行了以下設置,波特率設置爲115200,但是在模擬此代碼時,波特率未分配爲115200或約爲115200。LPC1788中UART的波特率設置
uint32_t uart0_init()
{
LPC_SC->PCONP |=(1<<3); //Enabling power/clock for UART0
LPC_IOCON->P0_2 = 1; //Selecting fn. 001 for P0.2(U0_TXD)
LPC_IOCON->P0_3 = 1; //Selecting fn. 001 for P0.3(U0_RXD)
LPC_UART0->LCR =(0x83); //Selecting DLAB=1,1 stop bit,Parity bit and 8-bit character length
LPC_UART0->DLL = 0x04; //For PCLK=12MHZ and baud rate as 115200,DLL=4(in dec.)
LPC_UART0->DLM = 0x00; //For PCLK=12MHZ and baud rate as 115200,DLM=0(in dec.)
LPC_UART0->FDR =(0x85); //DIVADDVAL=1(3:0) and MULVAL=2(7:4) in FDR calculated from the FRest value
LPC_UART0->LCR =(0x03); //Disabling DLAB=0
LPC_UART0->FCR |=(7<<0); //Enable FIFOEN,TXFIFORES and RXFIFORES in FCR(0,1,2)
LPC_UART0->FCR |=(0<<0); //Disable FIFOEN,TXFIFORES and RXFIFORES in FCR(0,1,2)
//NVIC_EnableIRQ(UART0_IRQn);
//LPC_UART0->IER = IER_RBRIE | IER_THREIE | IER_RXIE;
return 1;
}
對我來說,它的未來近384615,其完全different.Is沒有做任何計算,得出準確的115200個波特。
請爲我解決..
你是否改變PLLClock? PCLKSEL是12Mhz?什麼是CCLKSEL? – Gossamer
它的120Mhz和默認的PCLKSEL值是0x02,所以仿真時鐘分頻窗口中獲得的PCLK值爲60mhz。那麼我是否可以添加LPC_SC-> PCLKSEL | =(1 << 3); –