I have a windows app that sends the following 8 bytes to the NXP LPC2478 UART2 at 38400, 8 bits 1 stop.
01 06 02 00 01 03 09 9B
Once received the NXP echos these bytes back to PC.
What I get back is 01 06 02 00 01 03 09, the 9B is missing. If I send the bytes again then the echo starts with 9B followed by most of the bytes sent. If byte 2 is changed from 02 to 03 or greater then the echo is always correct. If byte 2 is 01 then the first time I get 01 06 01 00 01 03, this time missing 09 and 9B. Sending the command again I then first get the 09 9B followed again by some or all characters send. I have enabled only Rx interrups and both Rx and Tx interrups, does not matter.
I verified using the ULink2 that the NXP did in fact receive the characters properly. Also when I send the charactes I see that all 8 are being sent. A call is made to this function to send all 8 characters
int com_putchar (int ch) { while (!(*UxLSR & 0x20)); *UxTHR = ch;
return (*UxTHR); }
On the PC side I have a serial monitoring program which I have used for a number of years to monitor what the PC is receiving.
Obvious place to start:
1. does the NXP receveive the bytes correctly?
2. does the NXP think that it's sent the "echo" bytes correctly?
Does it work in the simulator?
View all questions in Keil forum