私の UART は 4800 ボー レートに設定されていますが、下に貼り付けた UART コードを使用して NMEA センテンス (GPS 評価ボード) を受信できません。個々の GPS+ターミナルと UART+ターミナルは正常に動作しています。しかし、 GPS+UART 、センテンスを受信することはできません GPSのデフォルトのbuadレートは4800です
UARTのどこが間違っているのですか???
/**
* uart default at 4800 ACLK= 32.768KHz
* @4800 bps
*/
void UART_default(void){
P3SEL = BIT3+BIT4;
UCA0CTL1 |= UCSWRST;
UCA0CTL1 |= UCSSEL_1;
UCA0BR0 = 0x06;
UCA0BR1 = 0x00;
UCA0MCTL |= UCBRS_6+UCBRF_0;
UCA0CTL1 &= ~UCSWRST;
UCA0IE |= UCRXIE;
}
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
volatile char byte;
switch(__even_in_range(UCA0IV,4))
{
case 0:break; // Vector 0 - no interrupt
case 2:
byte= UCA0RXBUF;
if (byte == '\r') {
push_char(byte); // At end of Data transmission
ptr = 0;
}
else{
push_char(byte);
ptr++;
}
break;
case 4:break;
default: break;
}
}