関数 debug_print(fmt, args) が必要です。これは、フォーマット文字列、引数を受け取り、UART に送信できる char バッファーを作成します。基本的に、これらすべてを scanf に渡すことができますが、問題は、浮動小数点数をフォーマットするために特別な注意が必要なことです。
dtostrf( float_num, 3, 4, temp_buf );
%f
したがって、 in format stringに置き換え、 %s
float arg を に変更する必要がありtemp_buf
ます。組み込み環境の機能が限られているため、これらすべてを最小限の手順で実行する必要があります。
誰かがそのような機能を構築するのを手伝ってくれれば幸いです。
このようなもの:
void debug_print(char *fmt, ... )
{
va_list args;
va_start(args,fmt);
// use uart function for output
va_end(args);
}
しかし、プレースホルダーを効果的に反復する方法と、float
arg をに置き換える方法はchar*
?