UART-Recive is not working

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

UART-Recive is not working

424 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Abhishek.l on Sun May 18 19:23:58 MST 2014
Hi,

I've connected LPCXpesso with lpc1114 microntroller board with HC-05(Bluetooth module).I'm able to transmit data via HC05 and verify it in any serial software like teraterm.But when I try this code ,I'm unable to produce loopback of data.Can anyone please tell me what can be done to sort this out.






#include"LPC11xx.h"

#define LSR_THRE 0x20
#define LSR_TEMT 0x40
#define LSR_RDR 0x01
#define TEMT (1<<6)


int main(void) {
unsigned int regVal;
    unsigned int Fdiv;

    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16); /* Enable IOCON block */
    LPC_IOCON->PIO1_6 &= ~0x07;    //Clear the first 3 bits in the FUNC of the 'PIO1_6'
    LPC_IOCON->PIO1_6 |= 0x01;     //Set PIO1_6 as UART RXD
    LPC_IOCON->PIO1_7 &= ~0x07;       //Clear the first 3 bits in the FUNC of the 'PIO1_7'
    LPC_IOCON->PIO1_7 |= 0x01;     //Set PIO1_7 as UART TXD
    /*Enable UART Clock*/
    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12);    //Enable UART clock
    LPC_SYSCON->UARTCLKDIV = 0x01;    //Divide by 1

    LPC_UART->LCR = 0x83;           //8 bits, no parity, 1 stop bit, DLAB(divisor latch access bit) = 1
    regVal = LPC_SYSCON->UARTCLKDIV;
    Fdiv = (((SystemCoreClock)/regVal)/16)/38400 ;    /*baud rate is set to 38400,Because HC05 is set to 38400 Baud rate */

    LPC_UART->DLM = Fdiv / 256;
    LPC_UART->DLL = Fdiv % 256;
    LPC_UART->LCR = 0x03;        /* Diable latch access bit DLAB = 0 */ //Skal være 0 for at kunne skrive til THR
    LPC_UART->FCR = 0x07;        /* Enable and reset TX and RX FIFO. */

unsigned int i =0;
unsigned int data ;

while(1){



data = LPC_UART->LSR;

    // Ensure a clean start, no data in either TX or RX FIFO.
    while (( LPC_UART->LSR & (LSR_THRE|LSR_TEMT)) != (LSR_THRE|LSR_TEMT) );
    while ( LPC_UART->LSR & LSR_RDR )
    {
        data = LPC_UART->RBR;    // Dump data from RX FIFO
    }

if(LPC_UART->LSR &0x01)
data = LPC_UART->RBR;

LPC_UART->THR |= data;
}


return 0 ;
}





Thanks,

Abhishek L
Labels (1)
0 Kudos
1 Reply

338 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by R2D2 on Sun May 18 19:34:27 MST 2014

Quote: Abhishek.l
Can anyone please tell me what can be done to sort this out.



Just use a working sample  :quest:

Like LPCOpen:

http://www.lpcware.com/content/nxpfile/lpcopen-software-development-platform-lpc11xx-packages-0
0 Kudos