更好用的串口库

来自Duinopeak_COM
跳转至: 导航搜索

[English]


Arduino没有调试的功能,这是很多软件工程师的第一感觉。其实很多时候,我们只是利用Arduino来做一些小应用,可以不用调试功能的,如果你想用Arduino来做一个人脸识别的功能的话,那么你要重新考虑一下是不是选错平台了。 实际上我们做一些简单应用的时候,通常是利用串口打印信息来调试的。Arduino提供了方便的串口打印函数。

void setup()
{
    Serial.begin(115200);
    
    Serial.println("hello world");
}

void loop()
{
    // add code here
}

另外还有Serial.print,Serial.write等。当你熟悉了这些函数之后,你会发现这是函数其实也不是那么的友好,比如看一下下面的代码:

void setup()
{
    Serial.begin(115200);
    
    Serial.print("a[");
    Serial.print(3);
    Serial.print("] = ");
    Serial.println(5);
    
}

void loop()
{
    // add code here
}

上面的代码只是打印a[3]=5,居然用了4行代码,很麻烦。还记得大学C语言课上,如果要实现这个功能,只需要一行代码:

printf("a[%d] = %d", 3, 5);

如果是C++,也只需要一行:

cout << "a[" << 3 << "] = " << 5 << endl;

如果Arduino能够使用printf或者cout这样的函数,那会为我们带来不少的方便。实际上,有人写出了这样的库,http://arduiniana.org/libraries/streaming/ ,我把这个库稍作了一些修改,上传到了这里, 你可以下载下来试试。