-3
平臺:ESP8266和Arduino的功能uint16_t VAR打印到4位將無法正常工作
我在4個字符地方試圖輸出uint16_t
。激光(VL53L0X)正從2至4號的地方讀書。(永遠不會超過4個地方,MAX 8190出)
Serial.print(mmLaser);
作品,但不能格式化4個地方。
如果我調用該函數,我得到一個錯誤
**ERROR:** invalid conversion from 'char' to 'char*' [-fpermissive]
,如果我沒有編譯調用該函數:沒有錯誤
我在做什麼錯?
聲明瓦爾
char c_temp;
uint16_t mmLaser = 0; // hold laser reading
函數調用
uint16_2_char(mmLaser, c_temp);
Serial.print(c_temp);
功能
// Convert uint16_t to char*
// param 1 n - uint16_t Number
// param 2 c - char to return char value to
//
void uint16_2_char(uint16_t n, char* c){
sprintf(c, "%04d", (int) n);
}
什麼是你的編譯器有說關於傳遞一個'char'函數期待'char *'? – EOF
'char c_temp;' - >'char c_temp [100];'猜猜我不信任_never_中「永遠不會超過4個地方」。更好地將緩衝區大小設置爲int所產生的最大值。 – chux
我發現自己很奇怪,我在指出unsigned int *沒有小數位*。這並不意味着這是一個奇怪的問題拼圖。請閱讀[問]。把它放在心上。提供一個[mcve] – Tibrogargan