|
На OSK5912 установлен Linux 2.6.13 была написана тестовая програма для управления com-портом данную програму я тестировал на Fedora 3
все нормально работало :
передается сообщение, после чего все приятое выводится на экран
при переносе програмы на OSK5912 возникли такие глюки:
в большинстве случаев сом-порт нормально работает на перадачу но ничего не принимает
вот моя програма
#include newtio.c_cflag &= ~PARENB; /* set input mode (non-canonical, no echo,...) */ Если кто сталкивался с подобной проблемой помогите разобраться.
E-mail:
info@telesys.ru
#include
#include
#include
#include
#include
#define BAUDRATE B9600
#define MODEMDEVICE "/dev/ttyS0"
#define _POSIX_SOURCE 1 /* POSIX compliant source */
#define FALSE 0
#define TRUE 1
volatile int STOP=FALSE;
main()
{
int fd,c, res,n;
struct termios oldtio,newtio;
char buf[255];
fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY );
if (fd <0) {perror(MODEMDEVICE); exit(-1); }
tcgetattr(fd,&oldtio); /* save current port settings */
bzero(&newtio, sizeof(newtio));
newtio.c_cflag |= (CLOCAL | CREAD);
newtio.c_cflag &= ~CSTOPB;
newtio.c_cflag &= ~CSIZE;
newtio.c_cflag |= CS8;
newtio.c_cflag &= ~CRTSCTS;
newtio.c_lflag = 0;
newtio.c_cc[VTIME] = 0; /* inter-character timer unused */
newtio.c_cc[VMIN] = 5; /* blocking read until 5 chars received */
tcflush(fd, TCIFLUSH);
tcsetattr(fd,TCSANOW,&newtio);
/**/
fcntl(fd, F_SETFL, 0);
for(;;)
n = write(fd, " Hello omap Serial Port! ", 23);
if (n < 0)
fputs("write failed!\n", stderr);
/**/
while (STOP==FALSE) { /* loop for input */
res = read(fd,buf,5); /* returns after 5 chars have been input */
buf[res]=0; /* so we can printf... */
printf(":%s:%d\n", buf, res);
if (buf[0]=='z') STOP=TRUE;
}
tcsetattr(fd,TCSANOW,&oldtio);
}
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание