Arduino串口接收字符串

用过Arduino串口传输的朋友都知道,Arduino的Serial.read()每次只能读一个字节,但是有时想进行字符串通讯,就很麻烦了。
废话少讲,直接上完整例子:编译只要一块Arduino,不需要任何外置元件。
用Arduino编译器的串口监视器即可看到结果,我们打什么文字进去,下面就会返回什么文字。
String comdata = "";  //comdata为字符串变量

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    while (Serial.available() > 0)    //Serial.available()是当前串口缓冲池的数据量
    {
        comdata += char(Serial.read());  //用了String类型变量,很简单的实现了字符到字符串的加入,
                                         //还有字符串输出,赋值等麻烦问题,所以很简单的代码就能处
                                         //理串口数据。
        delay(2);                        //delay(2)不能删掉,否则串口缓冲区不够时间接受数据。即使调
                                         //小延时也会出错。具体数值也可以实验决定。
    }
    if (comdata.length() > 0)
    {
        Serial.println(comdata);
        comdata = "";
    }
}

再提醒一个:comdata说是一个字符串,也是一个数组,引用每个字的话可以用comdata[0],comdata[1]。。。comdata[n]。如果我们要每个字节取出的话,可以每个引用。

效果:输入什么字符串,输出就是什么。
输入:
1.jpg
按send之后:
2.jpg

0 Comments
Leave a Reply