1
lpc1768에서 uart의 통신 속도를 변경하는 방법에 몇 가지 문제가 있습니다.LPC 1768 용 통신 속도 변경 UARTx가 작동하지 않습니다.
초기화하기 위해서내 개의 UART를 구성, 나는 다음과 같은 코드를 사용하고는 9600 또는 38400
/* RxD0 is P0.3 and TxD0 is P0.2 */
LPC_PINCON->PINSEL0 &= ~(0x03<<4); // Reset P0.2 = GPIO
LPC_PINCON->PINSEL0 |= (0x01<<4); // Config P0.2 = TxD0
LPC_PINCON->PINSEL0 &= ~(0x03<<6); // Reset P0.3 = GPIO
LPC_PINCON->PINSEL0 |= (0x01<<6); // Config P0.3 = RxD0
LPC_UART0->LCR = 0x87; //8bits, no parity, 2 stop bits
switch (baudrate)
{
default :
case 9600 :
LPC_UART0->DLM = 0x00; //calculated with datasheet
LPC_UART0->DLL = 0x4E;
LPC_UART0->FDR = 0x21;
break;
case 38400 :
LPC_UART0->DLM = 0x00; //calculated with datasheet
LPC_UART0->DLL = 0x14;
LPC_UART0->FDR = 0xF7;
}
LPC_UART0->LCR = 0x07;//0x03; /* DLAB = 0 */
LPC_UART0->FCR = 0x07; /* Enable and reset TX and RX FIFO. */
NVIC_EnableIRQ(UART0_IRQn);
LPC_UART0->IER = IER_RBR | IER_THRE | IER_RLS; /* Enable UART0 interrupt */
그러나 9600에서 38400으로 전송 속도를 변경하려면, 난 그냥 DLM을 변경하려고 함께 잘 작동/DLL 및 FDR 레지스터를 적절한 값으로 설정합니다 (위의 코드와 동일). 그러나 그것은 작동하지 않습니다 ... (baudrate는 정의되지 않았습니다).
내 PCLK는 18MHz의
은 그 세 레지스터를 충분히되지 변경입니까? 내가 잘못 ?