-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