[MSP430]/MSP430_FRAM2017. 3. 30. 00:38

[MSP430FR2311 EVM] UART 테스트

[MSP430FR2311 EVM] UART 테스트







MSP430FR2311 UART 초기화 코드

MSP430 UART Baudrate 설정 생성코드 참고


    // Configure UART pins

     P1SEL0 |= BIT6 | BIT7;                    // set 2-UART pin as second function



       // Configure UART

     UCA0CTLW0 |= UCSWRST;                     // Put eUSCI in reset

     UCA0CTLW0 |= UCSSEL__SMCLK;


     // Baud Rate calculation

     UCA0BR0 = 8;                              // 1000000/115200 = 8.68

     UCA0MCTLW = 0xD600;                 // 1000000/115200 - INT(1000000/115200)=0.68

                                                     // UCBRSx value = 0xD6 (See UG)

     UCA0BR1 = 0;

     UCA0CTLW0 &= ~UCSWRST;          // Initialize eUSCI



MSP430 에서 UART 보레이트 설정시 항상 문제가 되던 부분은 오차율인데... MCTLW 레지스터를 설정하면  보상 가능하다.


ex) 115200 @ 1Mhz 

1000000/115200 - INT(1000000/115200)=0.68

0.68 => 0.6667 -> 0xD6 





MSP430FR2311 UART 송수신 코드

unsigned char U0_GetByte(void)

{

while(!(UCA0IFG & UCRXIFG));

return UCA0RXBUF;

}


void U0_PutByte(unsigned char Data)

{

    UCA0TXBUF = Data;

    while(!(UCA0IFG & UCTXIFG));

}




참고로 CCS 에는 시리얼 포트 터미널창이 있어 간단히 UART 테스트를 해 볼수 있다.




Posted by nexp

댓글을 달아 주세요