您尚未登录。

楼主 # 昨天 11:20:34

pans203
会员
注册时间: 2019-09-19
已发帖子: 6
积分: 1

RV1103高速串口

有没有做过RV1103高速串口的呀
我打算用串口接收数据,10字节/包,16000包/s
接收到的数据随机丢包,一丢就是几百1千多字节
有没有碰到过的大神

serinfo.flags |= ASYNC_LOW_LATENCY;
// 串口初始化
int setup_serial(const char *dev)
{
    int fd = open(dev, O_RDWR | O_NOCTTY | O_NONBLOCK);
    if (fd < 0)
    {
        write_log("ERROR: Cannot open serial %s: %s", dev, strerror(errno));
        exit(1);
    }

    struct termios tty = {0};
    tcgetattr(fd, &tty);
    cfmakeraw(&tty);
    cfsetspeed(&tty, 2000000);
    tty.c_cc[VMIN] = 0;  // 设置最小读取字节数为0
    tty.c_cc[VTIME] = 0; // 设置读取超时时间为0
    tty.c_cflag |= (CLOCAL | CREAD | CS8);
    struct serial_struct serial;
    int ret = ioctl(fd, TIOCGSERIAL, &serial);

    serial.xmit_fifo_size = 1024 * 1024; // 1M
                                         // 设置串口低延迟模式

    serial.flags |= ASYNC_LOW_LATENCY;
    ret = ioctl(fd, TIOCSSERIAL, &serial);
    if (tcsetattr(fd, TCSANOW, &tty) != 0)
    {
        write_log("ERROR: tcsetattr failed: %s", strerror(errno));
        close(fd);
        exit(1);
    }

    return fd;
}

// 串口初始化
int setup_serial(const char *dev)
{
    int fd = open(dev, O_RDWR | O_NOCTTY | O_NONBLOCK);
    if (fd < 0)
    {
        write_log("ERROR: Cannot open serial %s: %s", dev, strerror(errno));
        exit(1);
    }

    struct termios tty = {0};
    tcgetattr(fd, &tty);
    cfmakeraw(&tty);
    cfsetspeed(&tty, 2000000);
    tty.c_cc[VMIN] = 0;  // 设置最小读取字节数为0
    tty.c_cc[VTIME] = 0; // 设置读取超时时间为0
    tty.c_cflag |= (CLOCAL | CREAD | CS8);
    struct serial_struct serial;
    int ret = ioctl(fd, TIOCGSERIAL, &serial);

    serial.xmit_fifo_size = 1024 * 1024; // 1M
                                         // 设置串口低延迟模式

    serial.flags |= ASYNC_LOW_LATENCY;
    ret = ioctl(fd, TIOCSSERIAL, &serial);
    if (tcsetattr(fd, TCSANOW, &tty) != 0)
    {
        write_log("ERROR: tcsetattr failed: %s", strerror(errno));
        close(fd);
        exit(1);
    }

    return fd;
}

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn