【发布时间】:2020-06-02 13:52:23
【问题描述】:
我一直在使用这个函数来打印带前导零和 4 位小数的 int 值,效果很好。
使用 Arduino IDE 1.8.12
void printHex(int num, int precision)
{
Serial.println(num);
char tmp[16];
char format[128];
sprintf(format, "%%.%dX", precision);
sprintf(tmp, format, num);
Serial.println(tmp);
}
调用函数printHex(100,4)会打印出0064
我现在想打印 5 位小数的长值,但它并不像我想象的那么简单。
例如printHex(200000,5) 应该打印出30D40,而printHex(0,5) 应该打印出00000
我尝试将 int num 更改为 long num 并打印 5 位,但 MSB 始终为 0
目前我收到的是00D40 而不是30D40
【问题讨论】:
-
它确实产生了 - 请参阅here。也许你的串口的另一端有问题?
-
奇怪,在 Arduino 下 printHex(200000,5) 我得到 00D40