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.

[参考译文] RTOS/LAUNCHXL-F280049C:输出 uint16_t、int32_t、uint32_t 变量时出现 printf 函数问题。

Guru**** 2522770 points
Other Parts Discussed in Thread: LAUNCHXL-F280049C, CONTROLSUITE, C2000WARE, SYSBIOS, TMS320F280049C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/795672/rtos-launchxl-f280049c-printf-function-issue-when-output-uint16_t-int32_t-uint32_t-variables

器件型号:LAUNCHXL-F280049C
Thread 中讨论的其他器件: controlSUITEC2000WARESYSBIOSTMS320F280049C

工具/软件:TI-RTOS

我 将使用 LAUNCHXL-F280049C 评估 F280049C、以便将客户电路板从 F28075迁移到 F280049C。

我需要  具有 SCI 的管理控制台、以便我现在测试 printf 函数。

在 F28075上、我使用了 UARTprintf 函数、该函数与 controlSUITE 随实用程序库一起提供。

但 C2000ware 上的 F280049C 没有类似的实用程序、因此我将 STDOUT 重定向到 SCI、如下所示。

~~~μ A

   状态= add_device ("scia"、_ssa、SCI_open、SCI_close、SCI_read、 SCI_WRITE、
                       SCI_lseek、SCI_unlink、SCI_rename);
   FID = fopen ("scia"、"w");
   freopen ("scia:"、"w"、stdout);
   setvbuf (stdout、NULL、_IONBF、0);

~~~μ A

但是,我发现在 打印 uint16_t、 int32_t、uint32_t 变量时 printf 无法正常工作,如下所示。

我正在使用 CCSv8.3 / C2000ware 1.0.6.00和 SYSBIOS 6.73.0.12并附加我正在测试的项目文件。

您能不能指导我如何使 printf 函数正常工作。

此致、

JYe2e.ti.com/.../typical_5F00_TMS320F280049C.zip

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

    您好,

    下面提供了一些使用 UART printf 的示例。 这可能适用于另一个器件、但两个器件上的 SCI 是相同的。

    c2000ware\device_support\f2837xd\common\弃 用\utils

    在下面的 USB 示例中可以找到一个使用示例

    c2000ware\device_support\f2837xd\examples\cpu1\usb_dev_serial

    一些可能有用的其他链接:

    此致。

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

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

    您好!

    您是否能够在这方面取得任何进展?

    此致。

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

    还没有。

    我一直在尝试、但没有找到解决方案。

    我不明白 为什么 printf/sprintf 不能正常用于32位变量?

    我使用 的是 rts2800_fpu32.lib。

     printf/sprint 是否有编译器或链接选项 ?

    此致、

    JY Koh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不太熟悉这一点。 请查看编译器用户指南
    www.ti.com/.../spru514r.pdf

    此致。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    关于32位 printf。 在图片上、您缺少长格式修饰符。 在16位转换器上、例如 C2000 int 为16位宽、您需要%ld 而不是%d 才能打印32位整数、%08lX 而不是%08x。

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

    尊敬的 Edward:

    您指的是哪张图片? 以上%ld 更新(而不是%d)是否适合您?

    此致。

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

    您好!

    我指的是主题启动器随附的屏幕截图。 请查看该图片中的代码。  打印长整数时格式字符串中缺少'l'。 当然、如果没有"l"、它无法正常工作、难怪主题启动器获得0000FFFF 而不是 FFFFFFFF 等。

    Edward

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

    谢谢 Edward、

    它已解决。

    BR

    JY