0

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

我以这种方式正确运行 printf:http: //playground.arduino.cc/Main/Printf

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

4

1 回答 1

1

您需要采取两步法。

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

在您拥有读取串行端口数据的代码之后,然后将其概括为一种可以使用变量参数列表调用的方法,这些变量参数列表被分析,并且您在第一步中编码的例程被适当地调用。

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

但是,您可以通过将串行数据读入缓冲区然后使用 sscanf(在一串字符上的 scanf)来缩短上述工作,但是您需要再次编写执行串行 i/ 的包装器o 并使用您自己的包装器中的变量参数调用 sscanf,类似于您的链接正在执行的操作。

于 2013-08-16T23:26:36.847 回答