This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TM4C1290NCPDT:如何将 int32_t 中的值转换为 tm4c1290ncpdt-128-TQFP 上的浮点值

Guru**** 2473260 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/683572/compiler-tm4c1290ncpdt-how-to-convert-from-value-from-int32_t-to-float-on-the-tm4c1290ncpdt-128-tqfp

器件型号:TM4C1290NCPDT

工具/软件:TI C/C++编译器

我将 int32_t 转换为浮点的难度最大。 我不认为这应该是那么困难。

例如、我具有以下比率:

有符号 Int32数字器 = 2

有符号 int32分母= 583

比率=数值/分母= 0.003430。  

但是、在 tm4c1290ncpdt-128-TQFP 中  、比率= 0.000000  (始终)。

如何获得正确的数字?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Haroldo、

    在变量定义为浮点数之前、结果将为0、因为2个有符号 Int32的除法将被视为整数运算、不会产生浮点值。 您需要将分子、分母和比率全部定义为浮点数、以获得所需的结果。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ralph、
    感谢您的快速回复。 问题现在是、如何显示浮点值。 我试过你的常规%f 这似乎不起作用。
    我希望能够在十进制后显示6位数字。
    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Haroldo、

    是否要通过 UART 显示它们? 或其他方式?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    2路、
    USB 上的第一个 USB、具有如下 usprintf ((char *) USB_AppTxBuf、"\r\nNT1:%u S1:%d\r\nNT2:%u S2:%d\r\n 加热斜率:(%x)%u%04u\r\n"、
    控制台第二个、使用 code composer IDE。
    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Haroldo、

    我不确定我们必须为 USB 端提供什么、我需要进一步调查。

    CCS 控制台、请查看这个过去的线程-我认为它非常适合输出到 CCS 控制台(我看到过其他涉及 CIO 功能的线程): https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/469206

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ralph、
    我想了解如何在 USB 端打印浮点值
    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Haroldo、

    我研究了这一点、最好的解决方案是在打印浮点之前对其进行转换。

    如果不使用某种不需要大量修改或开发的转换、则无法提供通过 USB 进行浮点打印的解决方案。 这并不是证明开发所需的努力是合理的(考虑到转换方法的功能)、因此我们认为它是特定于应用的需求。

    在过去、我提供了一个有关如何处理转换的示例、您可以在此处阅读 :https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/663530/2438264#2438264

    此外、本主题还讨论了打印浮点值的其他一些问题: https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/663933/2440707

    如果您想开发不需要转换的内容、那么您可以查看的最佳资源就是 MSP430的这篇文章、其中讨论了如何重新路由 printf 以使用 UART 输出、尽管这可能不支持%f 浮点指示符: http://processors.wiki.ti.com/index.php/Printf_support_for_MSP430_CCSTUDIO_compiler#Rerouting_printf.28.29_output