Simon Ford
/
serial_framing
See when a UART looses framing based on baudrate shmoo
main.cpp@0:839d381fd33b, 2010-10-14 (annotated)
- Committer:
- simon
- Date:
- Thu Oct 14 09:22:08 2010 +0000
- Revision:
- 0:839d381fd33b
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon | 0:839d381fd33b | 1 | // See when the rx UART looses framing based on baudrate shmoo, sford |
simon | 0:839d381fd33b | 2 | // connect p13 to p10 |
simon | 0:839d381fd33b | 3 | |
simon | 0:839d381fd33b | 4 | #include "mbed.h" |
simon | 0:839d381fd33b | 5 | |
simon | 0:839d381fd33b | 6 | Serial device(p13, NC); |
simon | 0:839d381fd33b | 7 | Serial m(NC, p10); |
simon | 0:839d381fd33b | 8 | |
simon | 0:839d381fd33b | 9 | int main() { |
simon | 0:839d381fd33b | 10 | m.baud(4800); |
simon | 0:839d381fd33b | 11 | m.format(8, Serial::Even, 1); |
simon | 0:839d381fd33b | 12 | device.format(8, Serial::Even, 1); |
simon | 0:839d381fd33b | 13 | |
simon | 0:839d381fd33b | 14 | for(int baud_rate=4800; baud_rate>=4000; baud_rate -= 25) { |
simon | 0:839d381fd33b | 15 | device.baud(baud_rate); |
simon | 0:839d381fd33b | 16 | device.printf("Hello world! How are you today! Hello world! How are you today!\n"); |
simon | 0:839d381fd33b | 17 | |
simon | 0:839d381fd33b | 18 | wait(0.05); |
simon | 0:839d381fd33b | 19 | |
simon | 0:839d381fd33b | 20 | int frame_error = (LPC_UART3->LSR >> 3) & 1; |
simon | 0:839d381fd33b | 21 | m.getc(); |
simon | 0:839d381fd33b | 22 | |
simon | 0:839d381fd33b | 23 | printf("baud_rate: %d, frame_error: %d\n", baud_rate, frame_error); |
simon | 0:839d381fd33b | 24 | } |
simon | 0:839d381fd33b | 25 | } |