大家帮忙看下, 实在是不懂怎么回事了 初始化打开串口正常,fcntl 也 成功,但是isatty 不对,会返回0
然后写的时候,我写6个字节,write返回也是6.但是就是串口不出数据int open_port(int fd,int comport)
{    long vdisable; fd = open( "/dev/ttyS1", O_RDWR|O_SYNC);   
        if (-1 == fd)
{
      __android_log_write(ANDROID_LOG_INFO,"CL7202H","Can't Open Serial Port1...\n");
          
        }
        else 
__android_log_write(ANDROID_LOG_INFO,"CL7202H","open ttyS1 .....\n");

    if(fcntl(fd, F_SETFL, 0)<0)
 __android_log_write(ANDROID_LOG_INFO,"CL7202H","fcntl failed!\n");
     else
        __android_log_write(ANDROID_LOG_INFO,"CL7202H","fcntl success!\n"); if(isatty(STDIN_FILENO)==0)
__android_log_write(ANDROID_LOG_INFO,"CL7202H","standard input is not a terminal device\n");
     else
__android_log_write(ANDROID_LOG_INFO,"CL7202H","isatty success!\n"); return &uart_fd;
}
int  uart_init(void)
{
int i = 0;
u8 bau[6];
struct termios cfg;

if((open_port(uart_fd,2))<0)
{
__android_log_write(ANDROID_LOG_INFO,"CL7202H","open_port error\n");
return;
} if((i=set_opt(uart_fd,115200,8,'N',1))<0)
{
__android_log_write(ANDROID_LOG_INFO,"CL7202H","set_opt error\n");
return;
}
__android_log_print(ANDROID_LOG_INFO,"CL7202H","baudrate fd=%d\n",uart_fd);
return &uart_fd;
}/*
 * Class:     com_clou_cl7202h_serial
 * Method:    serial_write
 * Signature: ([I)I
 */
JNIEXPORT jint JNICALL Java_com_clou_cl7202h_serial_serial_1write
  (JNIEnv *env, jobject obj, jintArray data)
{
int i,len,ret;
jint * arraydata;
unsigned char a1[6] ={0x31,0x32,0x33,0x34,0x35,0x36};
fd_set fdsr;
char buf[200] ={0};
struct timeval tv; 
tv.tv_sec=2;  tv.tv_usec=0; 

len = (*env)->GetArrayLength(env,data);
 arraydata=( *env)->GetIntArrayElements(env,data,NULL);  uart_init();
 
i = write(uart_fd, a1,6);  if(i == len)
  __android_log_write(ANDROID_LOG_INFO,"CL7202H","uart1 send success!\n");
 else
  __android_log_write(ANDROID_LOG_INFO,"CL7202H","uart1 send faile!\n");

解决方案 »

  1.   

    建议先用其他方式测试串口通信是否正常。可以在PC端的串口工具直接对"/dev/ttyS1"写,看是否有输出;或者下载一个SerialPort的android版测试下。之后再查写操作是否成功。
      

  2.   

    PC端的串口工具直接对"/dev/ttyS1 测试过也读不到。。
    SerialPort的android版 用的那个SerialPort_0.7.apk 可以设置好ttyS1和波特率,但是一点console就会出错退出
      

  3.   

    我擦,一样的问题,在今天再次上演啊,亲们,你们都解决了吗?
    麻烦告知答案啊。
    我的是在linux,和window7下面都跑通了
    就是放到android下面,遇到了楼主的同样的问题啊。
    跪求答案啊