[MSP430]/MSP430F22xx2009. 8. 14. 23:35

MSP430F2274 UART 테스트

MSP430F2274 UART 테스트
MSP430F2x의 레지스터명이 많이 바꼈다. 그대로 동작을 하지 않아 새로 작성하면서 정리해 보았다.



TI에서 제공하는 예제는 인터럽트 방식 밖에 없어서 폴링방식을 추가 해보았다.
 
데이터 전송
PutByte() 함수는 데이터 보내기전 UCAxSTAT레지스터의 BUSY비트를 체크하면 된다.
 
UCBUSY Bit 0 USCI busy. This bit indicates if a transmit or receive operation is in
progress.
0 USCI inactive
1 USCI transmitting or receiving
 
 
데이터 수신
GetByte()함수는 데이터를 받았는지 확인하기 위해 UC1IFG 레지스터의 UCA0RXIFG 를 확인하면 된다.
#define u0_WaitForReceive()     while((UC0IFG&UCA0RXIFG) == 0)
#define u0_RxData()        (UCA0RXBUF)

unsigned char U0_GetByte(void)
{
 u0_WaitForReceive();
 return u0_RxData();
}


 while (1)
 {
  if(u0_IsReceiveData())
  {
   switch(U0_GetByte())
   {
    case '0':
     Led1Off();
     DebugPrint("LED OFF\r\n");
     break;
  
    case '1':
     Led1On();
  
     DebugPrint("LED ON\r\n");   
     break;
     
    case 't':
     flag ^= 1;
     DebugPrint("flag=%d\r\n", flag);
     break;   
   }
  } 
Posted by nexp

댓글을 달아 주세요