在微控制器中,“printf”是用来做什么的?

9

我在单片机的c语言样例代码中看到了"printf"指令。由于单片机没有固定的输出显示器,那么"printf"指令有什么用呢?


可能只是一些模拟器/调试器的存根?没有看到库源代码,无法确定。 - J-16 SDiZ
4个回答

16

很有可能,你可以通过RS232端口或作为电路模拟器虚拟输出的方式连接调试控制台。


12

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

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

通常,编译器库会为您提供钩子或存根,以便您可以为替代流I/O设备实现驱动程序,因此,例如,如果您的设备上有LCD显示屏,则可以实现一个,使printf输出到显示屏上。这称为“重新定位”。


7

您可以将微控制器与PC的串口进行接口,并使用超级终端监视数据。

printf

还可以将其用于诊断目的。


4
一些开发工具允许您在提供putchar或putch实现的情况下使用printf。在这种工具中,由于该函数将字符发送到某个设备,因此printf会在该设备上显示消息。
您只需要进行正确的设备初始化,实现putchar、putch或类似函数(请查看您的编译器/库文档),那么您的printf就会按照您期望的方式运行。
PS:一些编译器/库不支持所有printf格式说明符。再次,请查阅您的文档。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接