Community Translation - Generating Formatted Output Using EZ-USB FX3 SDK - KBA229781

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi,

I would like to translate KBA229781 into Japanese.

Thanks,

Kenshow

0 Likes
1 Reply
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi,

I would like to translate KBA229781 into Japanese.

Thanks,

Kenshow


Original KBA:

Generating Formatted Output Using EZ-USB FX3 SDK - KBA229781

Translated by Kenshow

==============================

タイトル:PSoC Creator:EZ-USB FX3 SDKを使用してフォーマットされた出力を生成する - KBA229781

バージョン:**

質問
EZ-USB FX3 SDKを使用してsnprintf()機能を実装するにはどうすればよろしいでしょうか?

回答
snprintf()の実装には、CyU3PDebugStringPrint() API関数を使用できます。これは、snprintfルーチンのより単純なバージョンであり、フォーマットされたデバッグ情報をユーザー指定のバッファに出力します。

この関数は「c」、「d」、「u」、「x」、「s」の変換仕様のみをサポートすることに注意してください。また、精度やタイプ修飾子もサポートしていません。このAPI関数は、その定義で以下のパラメータを使用します。

extern CyU3PReturnStatus_t

CyU3PDebugStringPrint (

        uint8_t *buffer,    /**< データが出力されるバッファ。*/

        uint16_t maxLength, /**< /**< バッファサイズ。*/

        char *fmt,          /**< 書式の指定文字。*/

    ...                /**< 可変引数リスト。*/

        );

このAPIの戻り値は、バッファへの出力が成功した場合はCY_U3P_SUCCESSとなり 、フォーマットされた文字列の長さがmaxLength を超える場合のCY_U3P_ERROR_BAD_ARGUMENTのいずれかになります。

要件が、フォーマットされたメッセージをユーザー定義のバッファに格納することであるとします。たとえば、「He has ‘x’ books.」というメッセージです。ユーザー提供のバッファに格納する必要があり、「x」は変数です。この場合、次のコードスニペットを使用できます。

char c1[SIZE_STRING];

uint8_t n =5;

CyU3PDebugStringPrint ((uint8_t*)c1, SIZE_STRING, "He has %d books.\n", n);

CyU3PDebugPrint(4,c1);

このコードスニペットは、「He has 5 books.」という文字列をバッファc1に格納します。これはCyU3PDebugPrint() API関数を使用してTera Termで表示できます。

Tera Termで取得した出力のスナップショットを以下に示します。

8.png

注: FX3 SDKに付属するサンプルプロジェクトGpioappは、上記の例を実装するように変更されています。このプロジェクトは、この記事とともに.zipファイルとして添付されます。

==============================

11-May-2020

Kenshow

0 Likes