Portál AbcLinuxu, 8. listopadu 2025 07:04
// Get the current options for the port...
tcgetattr(fd, &options);
// Set the baud rates to 38400...
cfsetispeed(&options, B38400);
cfsetospeed(&options, B38400);
// Enable the receiver and set local mode...
options.c_cflag |= (CLOCAL | CREAD);
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_iflag |= (IXON | IXOFF | IXANY);
options.c_cflag &= ~CRTSCTS;
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
// Set the new options for the port ...
tcsetattr(fd, TCSANOW, &options);
a smyčka v které mi to při 10tce spadne. Z aducu se většinou vrací i ( je to zatim pouze test ) :
for(i = 0;i<24;i++){
out_buffer[0] = 'z';
out_buffer[1] = i;
out_buffer[2] = 0;
write(fd, out_buffer, 3);
read(fd, in_buffer ,strlen(in_buffer));
usleep(10);
global[i][0] = in_buffer[1];
global[i][1] = in_buffer[2];
in_buffer[0] += '0';
in_buffer[1] += '0';
in_buffer[2] += '0';
printf("%s \r\n",in_buffer);
if(i == 9)
i = 10;
}
Předem děkuji za jakoukoliv pomoc.
Lyso
Řešení dotazu:
if(i == 9) i = 10;jsem tam dodal kvůli toho aby se desitka přeskočila, potom to jde. Jenomže kdykoliv se na vstupu/vystupu desítka objeví, začne to dělat neplechu.
options.c_iflag |= (IXON | IXOFF | IXANY);Tohle mi na první pohled přijde podezřelé, tipoval bych, že Xon/Xoff řízení toku by mělo být spíš vypnuté.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.