int initcomport(void)
{
//*****************************************************************************
//******************init COM-port**********************************************
int mainfd=0; /* File descriptor */
struct termios options;
mainfd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
if (mainfd == -1)
{ /* Could not open the port */
fprintf(stderr, "open_port: Unable to open /dev/ttyUSB0 - %s\n",
strerror(errno));
exit (-1);
}
/* Configure port reading */
//fcntl(mainfd, F_SETFL, FNDELAY); read com-port not bloking
fcntl(mainfd, F_SETFL, 0); //read com-port is the bloking
/* Get the current options for the port */
tcgetattr(mainfd, &options);
//cfsetispeed(&options, B9600); /* Set the baud rates to 9600 */
cfsetospeed(&options, B115200);
/* Enable the receiver and set local mode */
options.c_cflag |= (CLOCAL | CREAD);
options.c_cflag &= ~PARENB; /* Mask the character size to 8 bits, no parity */
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8; /* Select 8 data bits */
options.c_cflag &= ~CRTSCTS; /* Disable hardware flow control */
/* Enable data to be processed as raw input */
options.c_lflag &= ~(ICANON | ECHO | ISIG);
/* Set the new options for the port */
tcsetattr(mainfd, TCSANOW, &options);
//*****************************************************************************
//*****************************************************************************
return mainfd;
}
while (chout != 10)
{
read(mainfd, &chout, sizeof(chout)); /* Read character from ABU */
numeric[i]=chout;
i++;
}
sscanf(numeric,"%ud ", &delta);
#include <termios.h> /* POSIX terminal control definitions */
#include <fcntl.h> /* File control definitions */
#include <stdio.h>
#include <string.h> /* String function definitions */
#include <stdlib.h>
А как он будет работать в паре со стандартным IDE контроллером?Не понимаю вопроса. Работа этого контроллера ложится на плечи драйверов вашей ОС. Как она разрулит это, так и будет работать. 98-я винда работать не будет точно.