[MSP430G2231] UART 테스트
MSP430G2231은 USI인터페이스로 I2C, SPI가 있지만 UART는 없기 때문에 소프트웨어로 구현해야 한다. TI에서 제공 예제가 있으므로 적당히 수정해서 PC와 통신을 테스트 해 보았다. PC와 연결은 USB2UART를 이용했다.
MSP430G2231 UART테스트 소스코드
#include "system.h"
#include "serial.h"
unsigned int flag_send = 0;
void main(void)
{
unsigned char cnt = 0;
SystemInit();
Led1Init();
Led1On();
InitSwitch();
DebugInit(2400);
// Enable interrupts.
enable();
DebugPrint("MSP430G2231 UART test\r\n");
while(1)
{
if(flag_send)
{
SendIntStr(cnt++);
Led1Toggle();
flag_send = 0;
}
}
}
스위치를 누르면 UART로 데어터 전송
PC 테스트 프로그램
MSP430G2231 UART테스트 동영상
MSP430G2231은 USI인터페이스로 I2C, SPI가 있지만 UART는 없기 때문에 소프트웨어로 구현해야 한다. TI에서 제공 예제가 있으므로 적당히 수정해서 PC와 통신을 테스트 해 보았다. PC와 연결은 USB2UART를 이용했다.
MSP430G2231 UART 테스트용 핀은 아래와 같이 할당 했다.
P1.1 - TXD
P1.2 - RXD
P1.4 - Switch
MSP430G2231 UART테스트 소스코드
#include "system.h"
#include "serial.h"
unsigned int flag_send = 0;
void main(void)
{
unsigned char cnt = 0;
SystemInit();
Led1Init();
Led1On();
InitSwitch();
DebugInit(2400);
// Enable interrupts.
enable();
DebugPrint("MSP430G2231 UART test\r\n");
while(1)
{
if(flag_send)
{
SendIntStr(cnt++);
Led1Toggle();
flag_send = 0;
}
}
}
스위치를 누르면 UART로 데어터 전송
// Port 1 interrupt service routine
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
flag_send = 1;
Cbi(P1IFG, SW_BIT);
}
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
flag_send = 1;
Cbi(P1IFG, SW_BIT);
}
PC 테스트 프로그램
MSP430G2231 UART테스트 동영상
반응형