android ndk 15串口的一个小坑

android studio ndk 15.1使用串口的时候莫名其妙的会打开失败,打了一下日志

        errno = 0;
        if (tcsetattr(fd, TCSANOW, &cfg)) {

            LOGE("tcsetattr() failed %s",strerror(errno));
           
            close(fd);
            /* TODO: throw an exception */
            return NULL;
        }

发现这个函数会报错,而且报错的理由是无效的参数,what????一脸的?明明手册清清楚楚的写着这个参数。

android ndk 15串口的一个小坑_第1张图片
2B59AB14-91F6-4E16-84B7-06EF3761C1B7.png

google 百度一顿搜,Stack Overflow上有人提问过为什么android下这个函数一直失败,下面几个人说可能是ndk版本问题,问了下给我们供应android板卡的厂家,说ndk15有bug,他们都用的14,下了个14重新rebuild一下,解决了,真是坑啊,还以为硬件出问题了。

你可能感兴趣的:(android ndk 15串口的一个小坑)