Portál AbcLinuxu, 10. května 2025 07:06
// 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.