Download presentation
Presentation is loading. Please wait.
Published byMagnus Doyle Modified over 9 years ago
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); }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.