昨天终于调好了串口通信问题!
但是对于Arduino的串口通信机制还不是很了解,只是知道,在Serial.read()读取字符串的时候,加一个延时函数delay(),可以在字符串读取完成后,才执行下面的语句,要是不加delay()函数,读取一个字符后就开始执行下面的语句。delay的长度由字符串的长度决定。
还有一个问题就是,Arduino自带的串口调试工具,发送的字符串会自动加一位,例如发送“#01#”,在mega2560接收的时候是5位字符串,buffer.length()==5;但是用串口助手进行调试的时候,发送”#01#”,mega2560上接收却是4位,buffer.length()==4,同样,用iPhone发送时也是4位,这点要注意。