之前用arduino些串口接收都是这样子的
void loop() {
comdata = "";
while (Serial.available()) //时刻读取硬件串口数据
{
comdata += char(Serial.read());
delay(2);
}
while (Serial.read() >= 0) {} //清除串口缓存
if (comdata.length() > 0)
{
Serial.println(comdata);
// comdata = "";
}
}
然后发现频繁接收会有数据丢失
发d有时会没有返回 数据时不时丢失!!!!!!
然后用中断写吧
其实没有什么大的改变,就是用了个 void serialEvent() 这个串口中断是个伪中断。
String comdata = "";
void setup() {
// 初始化串口程序
Serial.begin(9600);
}
void loop() {
if (comdata.length() > 0)
{
Serial.println(comdata);
comdata = "";
}
}
void serialEvent()
{
comdata = "";
while (Serial.available()) //时刻读取硬件串口数据
{
comdata += char(Serial.read());
delay(2);
}
while (Serial.read() >= 0) {} //清除串口缓存
}
这样就可以了
测试了一会没有发现什么问题。
有什么错误多多指正!!!!