[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 테스트를 해 볼수 있다.