【问题标题】:"printf" in microcontroller, what is it for?微控制器中的“printf”,它有什么用?
【发布时间】:2011-01-11 04:06:55
【问题描述】:

我在微控制器的 c 语言示例代码中看到“printf”指令,特别是在 8051 中。由于微控制器没有固定的输出显示,“printf”指令有什么用?

【问题讨论】:

  • 也许只是刺激器/调试器的一些存根?没有看到库源代码就无法判断。

标签: c embedded microcontroller firmware 8051


【解决方案1】:

很有可能,因此您可以通过 RS232 端口或作为在线仿真器的虚拟输出连接调试控制台。

【讨论】:

    【解决方案2】:

    printf 被定义为输出到 stdout 而不是“输出显示”,stdout 可以是任何流设备。通常在没有显示器的系统上,它将输出到串行接口 (UART),因此可以将终端或终端仿真器(例如 HyperTerminal 或 TeraTerm)用作显示设备。

    一些开发环境实现了“半托管”,其中 stdio、stdin 和 stderr,甚至在某些情况下,文件系统由开发主机通过调试器接口(JTAG、ICE、SWD 等)提供。

    通常,您的编译器库会为您提供挂钩或存根,以便您可以实现替代流 I/O 设备的驱动程序,例如,您可以实现一个,以便 printf 将输出到 LCD 显示器(如果您的设备有一个)。这称为“重定向”。

    【讨论】:

      【解决方案3】:

      您可以将微控制器连接到PC的串行端口并监控您的数据

      打印

      使用超级终端。您也可以将其用于诊断目的

      【讨论】:

        【解决方案4】:

        某些开发工具允许您在实现 putcharputch 的情况下使用 printf。在此类工具中,由于您具有向某些设备发送字符的此功能,因此 printf 将在该设备上显示消息。

        您只需进行正确的设备初始化,实现 putchar、putch 等(检查您的编译器/lib 文档),瞧!您的 printf 将按照您预期的方式运行。

        PS:一些编译器/库不实现所有 printf 格式说明符。再次检查您的文档。

        【讨论】:

          猜你喜欢
          • 2012-09-20
          • 2011-06-29
          • 2013-09-07
          • 1970-01-01
          • 2016-06-01
          • 2019-06-18
          • 1970-01-01
          • 2017-11-26
          • 2011-02-24
          相关资源
          最近更新 更多