summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-04-01 16:48:12 -0700
committerKeith Packard <keithp@keithp.com>2011-04-01 16:48:12 -0700
commit4e2c18249e16c98cf5f7dccdf8d3b84bc473863a (patch)
tree4df076794e9e30f6163920a6acc915d9cd59abd4
parent92386f2e8419c4df125692cc998eb72ec49bf991 (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>
-rw-r--r--src/ao_serial.c6
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 |