Arduino Sketch에서 printf 사용하기

0
1910

Arduino에서 UART로 로그메시지를 확인하기 위해서는 Serial Class를 이용하면 된다.
예를 들면, Serial.print 혹은 Serial.println 과 같은 함수를 제공한다.

간혹 다른 라이브러리를 포팅해야 하는 경우, printf 함수를 구현해 놓은 경우가 있는데 이럴 때는 아래와 같이 설정하면 printf 함수를 Hooking 할 수 있다.

#include <stdio.h>

// create a FILE structure to reference our UART output function

static FILE uartout = {0} ;

// create a output function
// This works because Serial.write, although of
// type virtual, already exists.
static int uart_putchar (char c, FILE *stream)
{
    Serial.write(c) ;
    return 0 ;
}

void setup(void)
{
   // Start the UART
   Serial.begin(9600) ;

   // fill in the UART file descriptor with pointer to writer.
   fdev_setup_stream (&uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE);

   // The uart is the standard output device STDOUT.
   stdout = &uartout ;

   printf("TEST\r\n");
}

참고 : http://playground.arduino.cc/Main/Printf

 

NO COMMENTS

LEAVE A REPLY