Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Can't receive on UART using MCB2140

Hello folks. I am attempting to test serial comms on the MCB2140. While I have tested transmit with strings and single characters, I have yet to get coherent data from a device into the LPC2148.

Here is the current, simple program I am using, modified from examples found on Keil's website.

#define CR     0x0D
#include <LPC21xx.H>

void init_serial (void);
int putchar (int ch);
int getchar (void);


unsigned char test;

int main(void)
{
init_serial();

while(1)
{

putchar('?');                                           //checks for working output
putchar(getchar());                                     //Echo terminal
}
}

void init_serial (void)                   /* Initialize Serial Interface       */
{
  PINSEL0       = 0x00000005;         /* Enable RxD0 and TxD0              */
  //PINSEL0     = 0x00050000;         /* Enable RxD1 and TxD1              */
  U0LCR         = 0x00000083;         /* 8 bits, no Parity, 1 Stop bit     */
  U0DLL         = 97;         /* 9600 Baud Rate @ 15MHz VPB Clock  */
  U0LCR         = 0x00000003;        /* DLAB = 0                          */
}


int putchar (int ch)                      /* Write character to Serial Port    */
{

  if (ch == '\n')  {
    while (!(U0LSR & 0x20));
    U1THR = CR;                    /* output CR */
  }
  while (!(U0LSR & 0x20));
  return (U0THR = ch);
}


int getchar (void)                              /* Read character from Serial Port   */
{

  while (!(U0LSR & 0x01));

  return (U0RBR);
}

Upon running, I see a question mark, like I expect, but no further data.
I have a straight cable plugged into UART0, and hyperterminal configured for 9600 8N1. I also tested this on some old black box serial device, but had no better results.
I expect it to wait for input (it does) and echo back from the hardware whatever key I send.
Anyone able to help offer insight into the situation as to why I cannot receive?