如何在32位MCU用printf()函数打印64位数据

1.

在32位MCU上定义64位变量:

unsigned long long time_base;
unsigned long long temp_time;

2.

调用打印函数:

printf("RFID:time_base:%d\r\n",time_base);
printf("RFID:temp_time:%d\r\n",temp_time);
printf("RFID:Run time:%dms\r\n",time_base - temp_time);

显示异常
在这里插入图片描述

3.

改用16进制打印显示:

printf("RFID:time_base:0x%x\r\n",time_base);
printf("RFID:temp_time:0x%x\r\n",temp_time);
printf("RFID:Run time:0x%xms\r\n",time_base - temp_time);

也打印显示异常:
在这里插入图片描述

4.

在32位MCU上打印64位变量,需要用ll进行修饰:

4.1

代码:

printf("RFID:time_base:%lld\r\n",time_base);
printf("RFID:temp_time:%lld\r\n",temp_time);
printf("RFID:Run time:%lldms\r\n",time_base - temp_time);

打印显示正确:
在这里插入图片描述

4.2

代码

printf("RFID:time_base:0x%llx\r\n",time_base);
printf("RFID:temp_time:0x%llx\r\n",temp_time);
printf("RFID:Run time:0x%llxms\r\n",time_base - temp_time);

打印显示正确:
如何在32位MCU用printf()函数打印64位数据_第1张图片

你可能感兴趣的:(MCU,C/C++,单片机,嵌入式硬件,c语言)