A V
/
pokus_s_UART
Diff: UARTs.c
- Revision:
- 0:49f07865b3e4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UARTs.c Fri Nov 27 16:05:35 2009 +0000 @@ -0,0 +1,51 @@ +#include <LPC17xx.h> +#include "typedefs.h" +#include "UARTs.h" + +void +init_UARTs( UI_8 number_of_UART /* number of interface 0=UART0, 1=UART1, 2=UART2, 3=UART3 */ + ,UI_8 data_bits_count /* count of data bits 5,6,7,8 */ + ,UI_8 stop_bits_count /* count of stop bits 1=1, 2=2 (if data_bits==5 then stopbits=1and1/2) */ + ,UI_8 type_of_parity /* type of parity 0=fixed "0", 1=fixed "1", 2=odd , 3=even, 4=none (without parity bit) */ + ,UI_8 break_control /* 0=disable 1=enable */ + + ) +{ + LPC_UART_TypeDef *uart; + + switch(number_of_UART) + { + case UART0: uart=(LPC_UART_TypeDef *) LPC_UART0; break; + case UART1: uart=(LPC_UART_TypeDef *) LPC_UART1; break; + case UART2: uart=(LPC_UART_TypeDef *) LPC_UART2; break; + case UART3: uart=(LPC_UART_TypeDef *) LPC_UART3; break; + } + uart->LCR=(data_bits_count-(UI_8) 5)|((stop_bits_count-(UI_8) 1)<<2)|(type_of_parity<<3)|(break_control<<6); + uart->LCR|=MASK_DIVISOR_LATCH_ACCESS_BIT; + uart->DLL= + uart->DLM= + uart->LCR&=~MASK_DIVISOR_LATCH_ACCESS_BIT; + + +// /* Initialize the serial interface */ +// rbuf.in = 0; +// rbuf.out = 0; +// tbuf.in = 0; +// tbuf.out = 0; +// tx_active = __FALSE; +// +// /* Enable RxD1 and TxD1 pins. */ +// PINSEL0 = 0x00050000; +// /* 8-bits, no parity, 1 stop bit */ +// U1LCR = 0x83; +// /* 19200 Baud Rate @ 15MHz VPB Clock */ +// U1DLL = 49; +// U1DLM = 0; +// U1LCR = 0x03; +// /* Enable RDA and THRE interrupts. */ +// U1IER = 0x03; +// /* Enable UART1 interrupts. */ +// VICVectAddr14 = (U32)handler_UART1; +// VICVectCntl14 = 0x27; +// VICIntEnable |= 1 << 7; +}