Hi all, I am using MCB2300 Evaluation Board (LPC2368 based) for tesing UARTs now. I tried to run blinky demo code, UART0 and UART1 work fine, but I modified the code to use UART2 or UART3, it does not work.Follwong is what I modified in blinky demo code, config pin0.10 and pin0.11 as UART2 Tx and RX. No signal on pin 0.10. I only modified "Serial.c" source code,Please help me to find out the problems. By the way, I use uVersion3 with Evaluation version of compiler.
Thanks
Jack
/******************************************************************************/ /* SERIAL.C: Low Level Serial Routines */ /******************************************************************************/ /* This file is part of the uVision/ARM development tools. */ /* Copyright (c) 2005-2006 Keil Software. All rights reserved. */ /* This software may only be used under the terms of a valid, current, */ /* end user licence from KEIL for a compatible version of KEIL software */ /* development tools. Nothing else gives you the right to use this software. */ /******************************************************************************/ #include <LPC23xx.H> /* LPC23xx definitions */ #define UART2 /* Use UART 2 for printf /*modified here*/ /*use UART2*/ /* If UART 0 is used for printf */ #ifdef UART0 #define UxFDR U0FDR #define UxLCR U0LCR #define UxDLL U0DLL #define UxDLM U0DLM #define UxLSR U0LSR #define UxTHR U0THR #define UxRBR U0RBR /* If UART 1 is used for printf */ /* modified here to use UART2*/ #elif defined(UART2) #define UxFDR U2FDR #define UxLCR U2LCR #define UxDLL U2DLL #define UxDLM U2DLM #define UxLSR U2LSR #define UxTHR U2THR #define UxRBR U2RBR #endif void init_serial (void) { /* Initialize Serial Interface */ #ifdef UART0 PINSEL0 |= 0x00000050; /* Enable TxD0 and RxD0*/ //modified here to use UART2 #elif defined (UART2) /*PINSEL0 |= 0x40000000; /* Enable TxD1 */ /* PINSEL1 |= 0x00000001; /* Enable RxD1 */ /*modified here: */ PINSEL0 |= 0x00500000; /* Enable TxD2,RXD2*/ #endif UxFDR = 0; /* Fractional divider not used */ UxLCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */ UxDLL = 94; /* 9600 Baud Rate @ 14.4 MHZ PCLK */ UxDLM = 0; /* High divisor latch = 0 */ UxLCR = 0x03; /* DLAB = 0 */ } /* Implementation of putchar (also used by printf function to output data) */ int sendchar (int ch) { /* Write character to Serial Port */ while (!(UxLSR & 0x20)); return (UxTHR = ch); } int getkey (void) { /* Read character from Serial Port */ while (!(UxLSR & 0x01)); return (UxRBR); }