[adStar EVM] UART 테스트
adStar 는 5개의 UART(16Byte FIFO)가 있다. CANTUS에서는 8채널이 있었는데 약간 아쉬운 부분이다.
기존 CANTUS 보드와 핀맵이 조금 변경되어 코드 수정이 필요하다. adStar EVM에는 P1.0(TX0), P1.1(RX0)에 연결되어 있다.
adStar UART 초기화 함수
void U0_Init(unsigned char baud)
{
// *R_PAF4 = ((*R_PAF4)&0xfff0)|PAF4_URX0|PAF4_UTX0; //CANTUS
Cbi(*R_PAF1, GP_CFG(0) | GP_CFG(1));
Sbi(*R_PAF1, F_PAF1_0_UART_TX0 | F_PAF1_1_UART_RX0);
U0_SetBaud(baud);
}
adStar UART 송수신 함수
#define ULSR_DRDY F_ULS_DRDY
#define ULSR_TEMP F_ULS_TEMP
unsigned char U0_GetByte(void)
{
while(!(UART0_LSR & ULSR_DRDY));
return UART0_URDR;
}
void U0_PutByte(unsigned char Data)
{
while(!(UART0_LSR & ULSR_TEMP));
UART0_UTDR = Data;
}
adStar UART 테스트 예제 코드
#include "system.h"
#include "serial.h"
int main()
{
SystemInit();
Led1Init();
Led2Init();
Led1On();
Led2Off();
U0_Init(BAUD_115200);
DebugPrint("ADstar EVM1\r\n");
while(1)
{
if(U0_IsGetByte())
{
switch(U0_GetByte())
{
case '0':
DebugPrint("Led1 Off\r\n");
Led1Off();
break;
case '1':
DebugPrint("Led1 On\r\n");
Led1On();
break;
default:
break;
}
}
}
}