LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Data acquisition from a device through serial port in linux (https://www.linuxquestions.org/questions/linux-newbie-8/data-acquisition-from-a-device-through-serial-port-in-linux-173285/)

newtolinux123 04-22-2004 08:13 AM

Data acquisition from a device through serial port in linux
 
I have to read and write data frames from & to an electronic device.I am using C for establishing serial port communication with the device.
I have successfully implemented writing to the device.I sent data using this
code patch


fd = open(COMPORT,O_RDWR | O_NOCTTY | O_NDELAY);
fcntl(fd,F_SETFL,0);
tcgetattr(fd,&options);
cfsetospeed(&option,B9600);
cfsetispeed(&option,B9600);
options.c_cflag |= ( CLOCAL | CREAD );
options.c_cflag &= PARENB;
options.c_cflag &= ~PARODD;
options.c_cflag &= ~CSTOP;
options.c_cflag &= ~CSIZE;
options.c_cflag &= ~CRTSCTS;
options.c_cflag |= CS8;
options.c_oflag &= ~OPOST;
options.c_cc[VMIN]=1;
options.c_cc[VTIME]=0;
tcsetattr(fd,TCSANOW,&options);
tcflush(fd,TCIOFLUSH);
for(i=0;i<=7;i++)
n = write(fd,&buff1[i],2);
/*
for(i=0;i<=7;i++)
n = read(fd,&buff3[i],1);
*/
tcdrain(fd);
close(fd);
return 0;
}
when i remove comments and execute read portion of the patch it doesnot read the data comming from the device
Now i am trying to read from the serial port but no success please help me
Esp............... newbie42

michaelk 04-22-2004 08:27 AM

I suspect you are attempting to read the data before it is ready to be received. You need to wait until there are characters in the UART receive buffer first. This program might provide some hints.

http://www.comptechdoc.org/os/linux/...pgcserial.html

BTW the program will execute way faster then the UART transmits.


All times are GMT -5. The time now is 10:05 PM.