9

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

4

4 回答 4

16

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

于 2011-01-11T04:09:45.860 回答
12

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

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

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

于 2011-01-11T18:25:45.150 回答
7

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

打印

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

于 2011-01-11T04:11:37.203 回答
4

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

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

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

于 2011-01-22T10:08:43.400 回答