본문 바로가기

[MSP430]/MSP430_FRAM

MSP430FR5739 EVM - eUSCI UART테스트

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);
}

 


 

반응형