带有arduino语言的Printf和Scanf

带有arduino语言的Printf和Scanf,arduino,printf,scanf,Arduino,Printf,Scanf,我想在arduino语言中使用printf和scanf 我以以下方式正确运行printf: 但我不能用scanf。如何使用它?您需要采取两步方法 首先,由于您正在为Arduino编码,并且将由scanf处理的数据通过串行端口传输,因此首先编写一个例程,以读取所需数据的串行端口。您会发现这不是一项简单的任务,最终您将获得读取整数、字母等ASCII字符的例程 在您有了读取串行端口数据的代码之后,将其概括为一种方法,可以通过分析变量参数列表调用该方法,并适当地调用您在第一步中编写的例程 简而言之,A

我想在arduino语言中使用printf和scanf

我以以下方式正确运行printf:


但我不能用scanf。如何使用它?

您需要采取两步方法

首先,由于您正在为Arduino编码,并且将由
scanf
处理的数据通过串行端口传输,因此首先编写一个例程,以读取所需数据的串行端口。您会发现这不是一项简单的任务,最终您将获得读取整数、字母等ASCII字符的例程

在您有了读取串行端口数据的代码之后,将其概括为一种方法,可以通过分析变量参数列表调用该方法,并适当地调用您在第一步中编写的例程

简而言之,Arduino没有scanf等价物,因为它必须处理串行I/O


但是,您可以通过将串行数据读入缓冲区,然后使用sscanf(字符字符串上的scanf)来缩短上述工作,但同样,您需要编写完成串行i/o并使用您自己的包装器中的变量参数调用sscanf的包装器,这与您的链接所做的工作类似。

,没有scanf,因为没有标准输入提供输入。在计算机上运行的程序通常以键盘的形式提供stdin,并将stdout作为控制台窗口。如果没有这些,您必须将一些输入源耦合到sscanf,您对此有何看法?如果我遵循输入部分,它对我有帮助吗?@DarkCoffee,我遵循了链接,请注意,在大约第二段中,我对何时使用Arduino libs进行了评论。编写您自己的代码是很有指导意义的,当您有足够的经验时,可以使用这个库,或者编写您的库来执行同样的操作!对链接的快速查看没有发现任何关于将
scanf
与重定向stdin一起使用的明确注释,因此在使用该库时可能仍然存在一些问题。在您有足够的经验编写同一lib的自己版本之前,您无法解决的问题。