[STM32L0] sprintf 格式化一个 uint64_t 变量,结果有问题

[复制链接]
276|0
地瓜patch 发表于 2025-9-27 16:34 | 显示全部楼层 |阅读模式
%llu 打印为 "lu"(只有字符,没有数字)是否需要调用特殊库?比如像浮点数那样?




if (constx8 == 0) // calculate constants one time.
        {
                uint64_t num = (((uint64_t)(((uint32_t)(R21 + R22))) * VREFINT_CAL_VREF) * (*VREFINT_CAL_ADDR)) << 8;
                uint32_t denom = (uint32_t)4095 * R22;
                constx8 = (uint32_t)(num / denom);  // 8 times actual value.
                if (isDebug(DEBUG_encoder_voltage_calc))
                {
                        char buf[150];
                        sprintf(buf,"Const calc: num: %llu, denom: %lu, constx8: %lu\r\n", num, denom, constx8);
                        print_debug_str(buf);
                }
        }



打印结果为"Const calc: num: lu, denom: 2454134784, constx8: 2646"

您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1926

主题

15206

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部