Suga koubou
/
Serial_AutoBaud
test of UART Auto-baud for LPC1768
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 DigitalOut myled(LED1); 00004 Serial pc(USBTX, USBRX); 00005 00006 Serial ser(p28, p27); 00007 LPC_UART1_TypeDef *uart = (LPC_UART1_TypeDef*)LPC_UART2; 00008 00009 int main() { 00010 int fdiv, baud; 00011 00012 pc.baud(115200); 00013 pc.printf("Auto-baud start...\r\n"); 00014 myled = 1; 00015 00016 uart->LCR |= (1<<7); 00017 uart->DLL = 0; 00018 uart->DLM = 0; 00019 uart->LCR &= ~(1<<7); 00020 uart->FDR = 0x10; 00021 // uart->ACR = (1<<9)|(1<<8)|(1<<2)|(1<<0); // Auto-baud start, mode 0 00022 uart->ACR = (1<<9)|(1<<8)|(1<<2)|(1<<1)|(1<<0); // Auto-baud start, mode 1 00023 while (uart->ACR & (1<<0)); 00024 00025 uart->LCR |= (1<<7); 00026 fdiv = uart->DLM * 256 + uart->DLL; 00027 uart->LCR &= ~(1<<7); 00028 baud = SystemCoreClock / (16 * fdiv); 00029 pc.printf("Baudrate: %d\r\n", baud); 00030 00031 myled = 0; 00032 for (;;) { 00033 if (pc.readable()) { 00034 ser.putc(pc.getc()); 00035 } 00036 if (ser.readable()) { 00037 pc.putc(ser.getc()); 00038 } 00039 } 00040 }
Generated on Tue Jul 19 2022 02:02:39 by 1.7.2