武德大师 发表于 2021-1-18 18:27:34

串口丢失接收的字符


/**
* 程序是循环发送字符串 abc 给uno板
* 然后测试uno板有没有正确的接收到字符串 abc
* 测试的结果是字符串口接收总是出错
* 总是会丢失字符c
*
* 目前还没找到解决办法
* */
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}

void loop() {

char i;
char j[] = {'i','v','a','l','u','e','i','s',':','\n'};
int k=0;
char mark = 'a';
// 等待接收
// 串口工具这边循环发送字符串 abc
while(Serial.available()>0)
{
    i = Serial.read();
    // 打印ivalueis:
    while(j != '\n'){
      Serial.write(j);
      k++;
    }
    // 打印i的值
    Serial.println(i);
    delay(100);
    k=0;
    // 因为一直发送串口命令来测试串口接收数据的正确性
    // 串口面板输出信息较多,使用mark来对比串口接收
    // 到的数据,出错就打印错误信息
    Serial.print("mark is :");
    Serial.println(mark);
    if ( i != mark) {
      Serial.println("recived data error! ");
      Serial.print("mark is :");
      Serial.println(mark);
      mark = i;
    }
    if(mark == 'a'){
      mark = 'b';
    }else if(mark == 'b'){
      mark = 'c';
    }else {
      mark = 'a';
    }
}
}


程序是循环发送字符串 abc 给uno板,然后测试uno板有没有正确的接收到字符串 abc,测试的结果是字符串口接收总是出错,总是会丢失字符c。串口打印的信息如下,总是会出错,有没有谁知道原因?
页: [1]
查看完整版本: 串口丢失接收的字符