diff options
author | Keith Packard <keithp@keithp.com> | 2011-04-01 16:48:12 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-04-01 16:48:12 -0700 |
commit | 4e2c18249e16c98cf5f7dccdf8d3b84bc473863a (patch) | |
tree | 4df076794e9e30f6163920a6acc915d9cd59abd4 /src | |
parent | 92386f2e8419c4df125692cc998eb72ec49bf991 (diff) |
altos: Clean up serial initialization
Flush serial input buffers when switching speeds.
Ensure pin configuration is correct.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/ao_serial.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ao_serial.c b/src/ao_serial.c index dc68f862..9c0b798d 100644 --- a/src/ao_serial.c +++ b/src/ao_serial.c @@ -119,6 +119,7 @@ ao_serial_set_speed(uint8_t speed) ao_serial_drain(); if (speed > AO_SERIAL_SPEED_57600) return; + U1UCR |= UxUCR_FLUSH; U1BAUD = ao_serial_speeds[speed].baud; U1GCR = ao_serial_speeds[speed].gcr; } @@ -129,7 +130,8 @@ ao_serial_init(void) /* Set up the USART pin assignment */ PERCFG = (PERCFG & ~PERCFG_U1CFG_ALT_MASK) | PERCFG_U1CFG_ALT_2; - /* ee has already set the P2SEL bits */ + P2SEL = (P2SEL & ~(P2SEL_PRI3P1_MASK | P2SEL_PRI2P1_MASK)) | + (P2SEL_PRI3P1_USART1 | P2SEL_PRI2P1_USART1); /* Make the USART pins be controlled by the USART */ P1SEL |= (1 << 6) | (1 << 7); @@ -143,7 +145,7 @@ ao_serial_init(void) /* Reasonable serial parameters */ U1UCR = (UxUCR_FLUSH | UxUCR_FLOW_DISABLE | - UxUCR_D9_ODD_PARITY | + UxUCR_D9_EVEN_PARITY | UxUCR_BIT9_8_BITS | UxUCR_PARITY_DISABLE | UxUCR_SPB_1_STOP_BIT | |