Problemas com a UART

Boa trade, eu estou tentando usar a UART de um msp430f1611 o problema é que o caractere que eu recebo é totalmente difirente do que eu mandei pelo msp. Eu já mudei velocidade do msp, ja aumentei e mininui o baud rate, troquei de computador, tentei usar a outra uart e até agora nada...
Alguém poderia de dar uma ajuda?
void putc(char c)
{
U0TXBUF = c;
while(!U0TCTL_bit.TXEPT);
}
//************** MAIN *****************************
void main(void)
{
// char c;
WDTCTL = WDTPW + WDTHOLD;
delay();
DCOCTL = 0x9B;
BCSCTL1 = 0x87;
BCSCTL2 = 0x00;
P3SEL_bit.P3SEL_4 = 1;
P3SEL_bit.P3SEL_5 = 1;
ME1 = UTXE0 + URXE0;
U0CTL = SWRST + CHAR;
U0TCTL = SSEL1 + SSEL0;
U0BR0=0x6B;
U0BR1=0x00;
U0MCTL=0x55;
U0CTL_bit.SWRST =0;
while(1)
{
putc('a');
}
Alguém poderia de dar uma ajuda?
void putc(char c)
{
U0TXBUF = c;
while(!U0TCTL_bit.TXEPT);
}
//************** MAIN *****************************
void main(void)
{
// char c;
WDTCTL = WDTPW + WDTHOLD;
delay();
DCOCTL = 0x9B;
BCSCTL1 = 0x87;
BCSCTL2 = 0x00;
P3SEL_bit.P3SEL_4 = 1;
P3SEL_bit.P3SEL_5 = 1;
ME1 = UTXE0 + URXE0;
U0CTL = SWRST + CHAR;
U0TCTL = SSEL1 + SSEL0;
U0BR0=0x6B;
U0BR1=0x00;
U0MCTL=0x55;
U0CTL_bit.SWRST =0;
while(1)
{
putc('a');
}