2011-08-24 5 views
0

내 UART가 4800bps 속도로 구성되어 있습니다. 아래에 붙여 넣은 UART 코드를 사용하여 NMEA 문장 (GPS 평가판)을 RX 할 수 없습니다. 개별적으로 GPS + 터미널 및 UART + 터미널이 정상적으로 작동합니다. 그러나 GPS + UART, 나는 결코 어떤 문장도 수신 할 수 없다. GPS 기본 부지 비율은 4800이다.UART가 GPS NMEA 문장을 수신 할 수 없음

내가 UART로 잘못 가고있는 어떤 생각? ??? > 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; 
    }  
} 
+0

문제가있는 곳을 좁히기위한 몇 가지 질문 : GPS가 데이터를 전송하고 있는지 확인 했습니까? RX 라인의 로직 분석기가 유효한 4800bps 데이터를 볼 수 있습니까? 인터럽트를 사용하는 대신 UART를 폴링하는 데이터를받을 수 있습니까? –

+0

나는 또한 당신이 라인을받지 못한다는 것을 어떻게 알 수 있습니까? 어떻게 테스트 했습니까? 라인을 어떻게 처리하려고합니까? push_char()는 무엇을하고 ptr은 나머지 코드에서 어떻게 사용됩니까? – tinman

답변

0

당신은 USB <와 PC하여 GPS를 교체하려고 했습니까? 이것은 MSP430의 baudrate 설정과 무언가를받을 수있는 능력을 검증 할 수 있습니다.