Linux下实现串口读写操作
这里只贴串口读写操作部分代码,供大家参考学习用,该部分代码主要实现打开串口,配置串口参数波特率为115200、停止位1、数据位8、无校验位,发送2个数据,等待接收24个数据。代码是在QT窗体程序里实现,界面添加了了一个按钮,3个文本框,按下去发送2个数据,等待接收到24个数据后,把发送数据长度、接收数据长度、串口句柄在文本框显示出来。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include QMessageBox
#include QTime
#include QDebug
#include fcntl.h
#include "stdio.h"
#include "termios.h"
#include "unistd.h"
#include "limits.h"
#include stdint.h
#include "time.h"
//===================
#include sys/select.h
#include sys/time.h
//===================
#define UART_DEV "/dev/ttyS0"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui-setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void SetOpt(int fd)
{
struct termios new_cfg; //配置串口的属性定义在结构体struct termios中
tcgetattr(fd, new_cfg); //获取终端控制属性
new_cfg.c_cflag |= (CLOCAL | CREAD); //c_cfl