我在微控制器的 c 语言示例代码中看到“printf”指令,特别是在 8051 中。由于微控制器没有固定的输出显示,“printf”指令的用途是什么?
4 回答
很有可能,因此您可以通过 RS232 端口或作为在线仿真器的虚拟输出连接调试控制台。
printf 被定义为输出到 stdout 而不是“输出显示”,stdout 可以是任何流设备。通常在没有显示器的系统上,它将输出到串行接口 (UART),因此终端或终端仿真器(例如 HyperTerminal 或 TeraTerm)可以用作显示设备。
一些开发环境实现了“半托管”,其中 stdio、stdin 和 stderr,甚至在某些情况下,开发主机通过调试器接口(JTAG、ICE、SWD 等)提供文件系统。
通常,您的编译器库将为您提供挂钩或存根,以便您可以实现替代流 I/O 设备的驱动程序,例如,您可以实现一个,以便 printf 将输出到 LCD 显示器(如果您的设备有一个)。这称为“重定向”。
您可以将微控制器连接到 PC 的串行端口并监控您的数据
打印
使用超级终端。您也可以将其用于诊断目的
一些开发工具允许您使用printf给定putchar或putch的实现。在此类工具中,由于您具有向某些设备发送字符的此功能,因此 printf 将在该设备上显示消息。
您只需要进行正确的设备初始化,实现 putchar、putch 等(检查您的编译器/lib 文档),然后瞧!您的 printf 将以您期望的方式运行。
PS:一些编译器/库没有实现所有 printf 格式说明符。再次,检查您的文档。