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/ao_serial.c | |
| 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/ao_serial.c')
| -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 | | 
