- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I would like to translate KBA229781 into Japanese.
Thanks,
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で取得した出力のスナップショットを以下に示します。
注: FX3 SDKに付属するサンプルプロジェクトGpioappは、上記の例を実装するように変更されています。このプロジェクトは、この記事とともに.zipファイルとして添付されます。
==============================
11-May-2020