MSP430FR5739 EVM - eUSCI UART테스트
MSP430F5739는 eUSCI(enhanced universal serial communication interface) 라고 하는 통신 인터페이스가 적용되었다고 한다.
새로운 기능으로 추가되는것은 좋지만 기존 코드를 좀 쓸수 있었으면 좋겠는데... 레지스터명이나 기능들이 또 바뀌어 있다.
설계 할때 잘 해둘필요가 있는데... 아무튼 다시 한번 정리해 본다.
MSP430FR5739 UART 블록도
MSP430FR5739 UART 초기화 함수
// Serial Prot0 Utility Fuction Routine
void U0_Init(unsigned char baud)
{
U0_SetBaud(baud);
//set Baudrate
//---------------------------------------------------------
UCA0CTL1 |= UCSWRST;
// Configure UART pins
P2SEL1 |= BIT0 + BIT1;
P2SEL0 &= ~(BIT0 + BIT1);
UCA0CTL1 = UCSSEL__SMCLK; // UCSSEL__SMCLK = 32768 as UCBRCLK
UCA0CTL1 &= ~UCSWRST;
}
MSP430FR5739 UART 송수신 함수
#define u0_WaitForReceive() while((UCA0IFG&UCRXIFG) == 0)
#define u0_RxData() (UCA0RXBUF)
#define u0_TxData(Data) (UCA0TXBUF = (Data))
#define u0_WaitForSend() while (!(UCA0IFG&UCTXIFG));
#define u0_IsReceiveData() (UCA0IFG&UCRXIFG)
#define u0_RXINT_EN() (IE2 |= UCA0RXIE)
unsigned char U0_GetByte(void)
{
u0_WaitForReceive();
return u0_RxData();
}
void U0_PutByte(unsigned char Data)
{
u0_WaitForSend();
u0_TxData(Data);
}