在PSoC Creator3.0內使用sprintf

1.printf說明

include 

int printf(const char * format, ...);
參數輸出範例
d or i含正負符號的十進制整數427, -427
u不含正負符號的十進制整數428
o不帶符號的八進制整數210
x不帶符號的十六進制整數(小寫)fa24
X不帶符號的十六進制整數(大寫)FA24
f浮點數3.14
c字元顯示A, a
s字串顯示Hello world
p指標地址b8000000
參數說明輸出範例
%%顯示百分比符號%
\\顯示反斜線\
\'顯示單引號'
\n換行
\t豎向跳格(TAB)
\b倒退
\r回車(Return)

在使用printf時,如有使用%f表示浮點數時,可以指定小數點顯示位數

如%.2f即代表顯示兩位數(ex:3.14)

return時帶回轉出字元數即字串長度。

#include 

int cnt = 0, num=100;

cnt = sprintf("number = %d", num);

2.sprintf說明

include 

int printf(char *str, const char * format, ...);

使用方式大致與printf相同,僅差別在於sprintf會將轉換結果儲存至 *str陣列中。

#include 
int cnt = 0, num=100;
char str[10];

cnt = sprintf(str, "number = %d", num);

3.PSoC Creator3.0中使用sprintf

PSoC Creator3.0據說是因為要縮減code的大小,以至於在使用sprintf功能時,預設不會載入浮點數轉換的功能,需要另外增加linker命令才可以致能浮點數的轉換功能,如不啟動的情況下使用sprintf轉換float變數時,均會得到空白的結果。

其解決的辦法是在Build Settings設定中的linker加入 -u _printf_float 命令(如下圖)

psoc creator linker

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料