こんにちは:
以前のトピックでは、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では動作しません。
正解は以下の通りです。
(1)リンクライブラリをNewLibに変更してください。完全なCライブラリでfloat printfもサポートします。
ただし、関連する c ファイルに
(2)リンクライブラリをNewLib Nanoに変更します。これはコンパクトなCライブラリで、「enable print float」をクリックしてfloat関数を有効にする必要があります。これにより、実際には「-u _printf_float」リンクシンボルが追加されます。
ただし、関連する c ファイルに
SO、プロジェクトでは確実にフラッシュとRAM消費が増えますが、i.MXRTシリーズでは問題ありません。
AttachはRT1020 EVKの一例です。
ありがとう!これで問題は解決しました。
こんにちは@daweiyou
ご協力ありがとうございますSO。その情報はとても役に立ち、多くの人にも役立つかもしれない。
改めてありがとうございました。
よろしくお願いします。
パブロ・アバロス。