主题 : android串口问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 55813
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2011-09-23
最后登录: 2012-04-12
楼主  发表于: 2012-04-06 10:56

 android串口问题

我自己写的jni层,生成so库,然后被应用调用
但是串口不正确,pc收到开发板发来的数据是乱码,开发板收不到pc的数据
下面是我对串口的配置,不知道哪里错了
JNIEXPORT jint JNICALL Java_com_friendlyarm_AndroidSDK_HardwareControler_openspi
  (JNIEnv *env , jclass jc, jstring name){
    fp = open("/dev/s3c2410_serial2", O_RDWR|O_NOCTTY|O_NDELAY);

    struct termios opt, oldtio;
    tcgetattr(fp,&oldtio);
    
    /*获取当前串口的配置*/
    tcgetattr(fp, &opt);
    opt.c_cflag |= CLOCAL|CREAD;
    /*设置波特率为57600*/
    cfsetispeed(&opt, B115200);
    cfsetospeed(&opt, B115200);
    tcsetattr(fp,TCSANOW,&opt);  
    /*设置数据位为8位*/
    opt.c_cflag &= ~CSIZE;
    opt.c_cflag |= CS8;
    tcsetattr(fp,TCSANOW,&opt);
    
    opt.c_cflag &= ~PARENB;
    opt.c_cflag &= ~CSTOPB;
    
    opt.c_cflag &= ~CRTSCTS;
    
    opt.c_lflag &= ~(ICANON|ECHO|ECHOE|ISIG);
    opt.c_oflag &= ~OPOST;
    opt.c_iflag = 0;
    
    opt.c_cc[VTIME] = 0;
    opt.c_cc[VMIN] = 0;
    tcflush(fp, TCIFLUSH);
    tcsetattr(fp,TCSANOW,&opt);

    return fp;
}