linux 串口打开

serialPort = open("/dev/ttyUSB0", O_RDWR|O_NOCTTY|O_NONBLOCK | FNDELAY);  // 打开串口设备

    if (serialPort == -1)

    {

       perror("无法打开串口");

       return -1;

    }

//    struct termios tty;

//    tcgetattr(serialPort, &tty);

    struct termios oldtio = { 0 };

    struct termios newtio = { 0 };

    tcgetattr(serialPort, &oldtio);

    // 配置串口参数

//    cfsetispeed(&tty, B115200);  // 设置波特率为9600

//    tty.c_cflag &= ~PARENB;

//    tty.c_cflag &= ~CSTOPB;

//    tty.c_cflag &= ~CSIZE;

//    tty.c_cflag |= CS8;


 

//    tcsetattr(serialPort, TCSANOW, &tty);

    newtio.c_cflag = 115200|CS8|CLOCAL|CREAD;

    newtio.c_iflag = 0; // IGNPAR | ICRNL

    newtio.c_oflag = 0;

    newtio.c_lflag = 0; // ICANON

    newtio.c_cc[VTIME] = 0; /* inter-character timer unused */

    newtio.c_cc[VMIN] = 1; /* blocking read until 1 character arrives */

    tcflush(serialPort, TCIOFLUSH);

    tcsetattr(serialPort, TCSANOW, &newtio);

读写记录:

void bytesRead_fun()

{

    char buffer[255];

    if(serialPort!=-1){

        int bytesRead = read(serialPort, buffer, sizeof(buffer));

        if (bytesRead > 0)

        {

            // 处理接收到的数据

            //printf("接收到%d个字节: %s\n", bytesRead, buffer);

            //qDebug()<<"bytesRead_fun";

            rbWrite(&pRb_set_fifo, &buffer[0], bytesRead);

        }

    }

}

void byteswrite_fun1(unsigned char *buf,int len)

{

     if(serialPort!=-1)write(serialPort, buf, len);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌风_lwp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值