最近发现打开串口容易阻塞,后来发现是没配置串口参数,记录如下: 

struct termios Opt;
  memset(&Opt,0,sizeof(Opt));
  if (tcgetattr(fd, &Opt) != 0)
    {
    printf("tcgetattr fd \n");
    }
 
    /*设置数据位为8位*/
  Opt.c_cflag &= ~CSIZE;
  Opt.c_cflag |= CS8;
 
    /*设置校验位为奇偶校验*/
  Opt.c_cflag |= PARENB;
 
    /*设置停止位为2*/
  Opt.c_cflag |= CSTOPB;
 
    /*数据处理*/
  Opt.c_lflag |= ECHO;
  
  cfsetispeed(&Opt, B921600);
  cfsetospeed(&Opt, B921600);
  status = tcsetattr(fd, TCSANOW, &Opt);
  if (status != 0)
    {
    printf("tcsetattr fd1 \n");
    }

具体参考:(34条消息) 设置串口通信参数_不完美星空-CSDN博客_串口配置的六个参数

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐