Добрый день, уважаемые Коллеги.
Возникли проблемы при работе с RS485 (плата PCI-1602B - двухголовая).
Нет приема.
Может кто- нибудь работал с этой платой или что подскажет или какие-нибудь исходники скинет.
Может не совсем корректно проинициализировал плату ?
Заранее благодарю за помощь и внимание.
У платы две головы. Я соединил выход одной с входом другой и наоборот.
Передающая пишет в порт по 5 байт (write) с интервалом.
Приемная должна читать по 5 байт (read).
void open_dev()
{
struct termios m_termios;
int j,status;
m_port.primary =open("/dev/ttyAP0",O_RDWR|O_NDELAY|O_NOCTTY);
if(m_port.primary < 0) {
printf("/dev/ttyAP0 Open BAD !!!\n") ;
exit(-1);
}
printf("/dev/ttyAP0 Open Ok !!!\n") ;
if(tcgetattr(m_port.primary, &m_termios)==-1) {
printf("/dev/ttyAP0 ERROR GETATTR !!!\n");
}
m_termios.c_cflag |= ( CREAD | CLOCAL | HUPCL );
m_termios.c_cflag &= ~CSIZE; /* Mask the character size bits */
m_termios.c_cflag |= CS8; /* Select 8 data bits */
m_termios.c_cflag &= ~PARENB;
m_termios.c_cflag &= ~CSTOPB;
cfsetispeed(&m_termios,B115200);
cfsetospeed(&m_termios,B115200);
m_termios.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); //Raw input
m_termios.c_iflag &= ~( IXON | IXANY | IXOFF ) ;
m_termios.c_oflag &= ~OPOST;
tcflush(m_port.primary,TCIOFLUSH);
if(tcsetattr(m_port.primary,TCSANOW,&m_termios)==-1) {
printf("/dev/ttyAP0 ERROR SETATTR !!!\n");
}
}