いつも忘れるのでメモ。 この、fdevopenを使う方法は、この関数がAVR用のavr-libcでしか定義されていないため、 ESP32やARMなど他のMCUがベースになっている場合には使えないので注意。

Aruino UNO3、 Arduino Nano、Pro Microなどでは使える。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// 名前はなんでもよい
int my_putc( char c, FILE *t) {
  return Serial.write( c );
}

void setup()
{
    Serial.begin(115200);
    fdevopen( &my_putc, 0);
    // 以降printfが使える。例↓
    print("Hello world! A0 = %d\n", analogRead(0));
}

void loop()
{

}

cf.