- /**
- * 程序是循环发送字符串 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[k] != '\n'){
- Serial.write(j[k]);
- 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。串口打印的信息如下,总是会出错,有没有谁知道原因?
|