当前位置:   article > 正文

QT线程编程-串口收发_qt串口通信的接收与发送

qt串口通信的接收与发送
下面讲述原理,也可以下载完整实验源码: 源码下载

前言

QT没有提供串口类,使用的是linux提供的函数。
linux下设备和文件使用一样,用open函数打开串口,设置等都提供了函数的,需要自己组合一下,封装成你要的函数。

1.QT串口发送数据

要使用串口,需先打开串口,封装的函数如下:

  1. int open_port(constchar* dev_path)
  2. {
  3. int fd;
  4. //open uart
  5. fd = open(dev_path, O_RDWR|O_NOCTTY|O_NDELAY);
  6. if(fd <0)
  7. {
  8. perror("open serial port");
  9. return-1;
  10. }
  11. if(fcntl(fd, F_SETFL,0)<0)//设置为阻塞模式,后面启动的线程会阻塞,串口有数据才读
  12. perror("fcntl F_SETFL\n");
  13. /*if(isatty(STDIN_FILENO) == 0)//再次验证是否为终端设备,我用的刷卡器,屏蔽了这个,不然会失败
  14. {
  15. perror("standard inpput is not a terminal device");
  16. }*/
  17. return fd;
  18. }


接下来需要设置串口的波特率、校验、结束位等,封装的函数如下:

  1. int set_com_config(int fd,int baud_rate,int data_bits,char parity,int stop_bits)
  2. {
  3. struct termios
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/132961?site
推荐阅读
相关标签
  

闽ICP备14008679号