1431699_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1431699_ja-JP

1431699_ja-JP

MCUXpresso IDEsでfloat番号を印刷する方法を補完するために

こんにちは:


以前のトピックでは、MCUXpresso IDEsやSDKsでfloat番号を印刷する方法についての議論がありました。

それらを試してみて、最終的な解決策をまとめると次のようになります。

1.浮動小数点数をUARTコンソールに出力します。

プロジェクト構成->C/C++ビルド->設定で以下のマクロを設定してください。

PRINTF_FLOAT_ENABLE=1

そのコードは動作するはずです。

float test1 = 0.15;

PRINTF("%f\r\n",test1);

2. sprintf() 関数を使用して浮動小数点数を文字列に変換します。

SDKユーザーマニュアルには「Ensure Redlib: Use floating some version of printfが選択される」というエラーがあります
プロジェクト作成中は動作しません。

デフォルトのCライブラリであるRedlibはフローティングをサポートしていないため、redlibでは動作しません。

daweiyou_0-1647929545419.png


正解は以下の通りです。

(1)リンクライブラリをNewLibに変更してください。完全なCライブラリでfloat printfもサポートします。

ただし、関連する c ファイルに を含める必要があることに注意してください。そうしないと、sprintf(float) が期待どおりに動作しません。

daweiyou_1-1647929662327.png

(2)リンクライブラリをNewLib Nanoに変更します。これはコンパクトなCライブラリで、「enable print float」をクリックしてfloat関数を有効にする必要があります。これにより、実際には「-u _printf_float」リンクシンボルが追加されます。

ただし、関連する c ファイルに を含める必要があることに注意してください。そうしないと、sprintf(float) が期待どおりに動作しません。

daweiyou_2-1647929807476.png


SO、プロジェクトでは確実にフラッシュとRAM消費が増えますが、i.MXRTシリーズでは問題ありません。

AttachはRT1020 EVKの一例です。






Re: To complement solution how to printf float number in MCUXpresso IDE

ありがとう!これで問題は解決しました。

Re: To complement solution how to printf float number in MCUXpresso IDE

こんにちは@daweiyou


ご協力ありがとうございますSO。その情報はとても役に立ち、多くの人にも役立つかもしれない。


改めてありがとうございました。

よろしくお願いします。
パブロ・アバロス。

Tags (1)
No ratings
Version history
Last update:
20 hours ago
Updated by: