串口丢失接收的字符
/**
* 程序是循环发送字符串 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]