Presentation is loading. Please wait.

Presentation is loading. Please wait.

UART Test UNIT 14 로봇 SW 교육원 조용수. 학습 목표 UART Init UART Send UART Receive UART -> Debugging Console Up/Down Game 제작 2.

Similar presentations


Presentation on theme: "UART Test UNIT 14 로봇 SW 교육원 조용수. 학습 목표 UART Init UART Send UART Receive UART -> Debugging Console Up/Down Game 제작 2."— Presentation transcript:

1 UART Test UNIT 14 로봇 SW 교육원 조용수

2 학습 목표 UART Init UART Send UART Receive UART -> Debugging Console Up/Down Game 제작 2

3 UART Init 통신에 사용할 속도 및 UART Clock Enable 3 void SYS_Init(void) { SYS_UnlockReg(); CLK->APBCLK = CLK_APBCLK_UART0_EN_Msk; SystemCoreClockUpdate(); SYS->P3_MFP = SYS_MFP_P30_RXD0 | SYS_MFP_P31_TXD0; SYS_LockReg(); } void UART0_Init() { /* Configure UART0 and set UART0 Baudrate */ UART_Open(UART0, 115200); }

4 UART Send TX Fifo 가 비어 있는지 체크 Tx Fifo 에 데이터 추가 4 void UartSend(int ch) { while(UART0->FSR & UART_FSR_TX_FULL_Msk); UART0->DATA = ch; if(ch == '\n') { while(UART0->FSR & UART_FSR_TX_FULL_Msk); UART0->DATA = '\r'; }

5 UART Receive Rx Fifo 에 데이터가 저장이 되는지 체크 Rx Data Read! 5 int UartRead() { int ch; while(UART0->FSR & UART_FSR_RX_EMPTY_Msk); ch =UART0->DATA; return ch; }

6 UART 로 내부 정보 전달 1.Echo 출력 6

7 UART 로 내부 정보 전달 1.Echo 출력 7 do { ch =UartRead(); UartSend(ch); } while(1);

8 UART Debugging Console Semihosting ? Retarget.c 추가 –Printf 등의 표준 입출력 함수 사용 가능 8

9 UART 로 내부 정보 전달 1.CPU ID 출력 9

10 UART 로 내부 정보 전달 1.CPU ID 출력 10 printf("PDID 0x%x \n", SYS->PDID);

11 UART 로 게임 만들기 1.Up / Down Game 만들기 11 #include #include "M051Series.h" // retarget.c 를 사용해야 printf 사용 가능해짐 void SYS_Init(void) { /* Unlock protected registers */ SYS_UnlockReg(); /* Enable IP clock */ CLK->APBCLK = CLK_APBCLK_UART0_EN_Msk; /* Update System Core Clock */ /* User can use SystemCoreClockUpdate() to calculate SystemCoreClock and cyclesPerUs automatically. */ SystemCoreClockUpdate(); /* Set P3 multi-function pins for UART0 RXD and TXD */ SYS->P3_MFP = SYS_MFP_P30_RXD0 | SYS_MFP_P31_TXD0; /* Lock protected registers */ SYS_LockReg(); }

12 UART 로 게임 만들기 12 void UART0_Init() { /* Configure UART0 and set UART0 Baudrate */ UART_Open(UART0, 115200); } void UartSend(int ch) { while(UART0->FSR & UART_FSR_TX_FULL_Msk); UART0->DATA = ch; if(ch == '\n') { while(UART0->FSR & UART_FSR_TX_FULL_Msk); UART0->DATA = '\r'; } int UartRead() { int ch; while(UART0->FSR & UART_FSR_RX_EMPTY_Msk); ch =UART0->DATA; return ch; }

13 UART 로 게임 만들기 13 int main(void) { int8_t ch; int8_t isStart = -1; int8_t result = -1; SYS_Init(); /* Init UART0 for printf */ UART0_Init(); do { printf("Input: "); ch =UartRead(); if(ch == 's') { printf("Start Game\r\n"); isStart = 1; result = rand() % 10; } else { if(isStart > 0) { int input = ch - 0x30 ; // ASCII To Int if(input > 10) { printf("Please Input Number \n"); }else if(input < result ) { printf("Low !!!\n"); } else if(input > result) { printf("High !! \n"); } else { printf("Correct!!! %d\n\n", result); isStart = -1; } } else { // Game Over printf("Input : %c\n", ch); } while(1); }


Download ppt "UART Test UNIT 14 로봇 SW 교육원 조용수. 학습 목표 UART Init UART Send UART Receive UART -> Debugging Console Up/Down Game 제작 2."

Similar presentations


Ads by Google