2983浏览
查看: 2983|回复: 0

[入门] 串口丢失接收的字符

[复制链接]

  1. /**
  2. * 程序是循环发送字符串 abc 给uno板
  3. * 然后测试uno板有没有正确的接收到字符串 abc
  4. * 测试的结果是字符串口接收总是出错
  5. * 总是会丢失字符c
  6. *
  7. * 目前还没找到解决办法
  8. * */
  9. void setup() {
  10.   // put your setup code here, to run once:
  11.   Serial.begin(115200);
  12. }
  13. void loop() {
  14.   
  15.   char i;
  16.   char j[] = {'i','v','a','l','u','e','i','s',':','\n'};
  17.   int k=0;
  18.   char mark = 'a';
  19.   // 等待接收
  20.   // 串口工具这边循环发送字符串 abc
  21.   while(Serial.available()>0)
  22.   {
  23.     i = Serial.read();
  24.     // 打印ivalueis:
  25.     while(j[k] != '\n'){
  26.       Serial.write(j[k]);
  27.       k++;
  28.     }
  29.     // 打印i的值
  30.     Serial.println(i);
  31.     delay(100);
  32.     k=0;
  33.     // 因为一直发送串口命令来测试串口接收数据的正确性
  34.     // 串口面板输出信息较多,使用mark来对比串口接收
  35.     // 到的数据,出错就打印错误信息
  36.     Serial.print("mark is :");
  37.     Serial.println(mark);
  38.     if ( i != mark) {
  39.       Serial.println("recived data error! ");
  40.       Serial.print("mark is :");
  41.       Serial.println(mark);
  42.       mark = i;
  43.     }
  44.     if(mark == 'a'){
  45.       mark = 'b';
  46.     }else if(mark == 'b'){
  47.       mark = 'c';
  48.     }else {
  49.       mark = 'a';
  50.     }
  51.   }
  52. }
复制代码


程序是循环发送字符串 abc 给uno板,然后测试uno板有没有正确的接收到字符串 abc,测试的结果是字符串口接收总是出错,总是会丢失字符c。串口打印的信息如下,总是会出错,有没有谁知道原因?
1610962891(1).jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
关于楼主

楼主的其它帖子

上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail