Konfigurera serieport
Goran Hasse
gorhas at raditex.nu
Mon Mar 7 16:10:51 CET 2022
Hej!
Jag håller på att konfigurera en serieport - lite den "hårda vägen"
-------------------------------------------------------------
bzero(&(handle->t), sizeof(handle->t));
handle->t.c_cflag |= (CS8|CREAD|CLOCAL);
handle->t.c_cflag |= PARENB;
handle->t.c_cc[VMIN] = 0;
handle->t.c_cc[VTIME] = 10;
cfsetispeed(&(handle->t), B9600);
cfsetospeed(&(handle->t), B9600);
tcsetattr(handle->fd, TCSANOW, &(handle->t));
-------------------------------------------------------------
Men så hittade jag denna utsaga (i något forum)
-------------------------------------------------------------
You must call cfmakeraw on a tty obtained from tcgetattr. You cannot zero-out a struct termios, configure it, and then set the tty with tcsetattr. If you use the zero-out method, then you will experience unexplained intermittent failures, especially on the BSDs and OS X. "Unexplained intermittent failures" include hanging in read(3).”
------------------------------------------------------------
Men cfmakeraw, om jag förstått manualen rätt, sätter väl bara allt till rimliga värden?
Om man _måste_ använda cfmakeraw så betyder det att det finns "hemliga" parametrar som man inte vet något om?
Någon som har en synpunkt?
// GH
--
Göran Hasse
Raditex Control AB
Boo 229, 715 91 ODENSBACKEN, SWEDEN
Mob +46 70 5530148
gorhas at raditex.nu
More information about the BUS
mailing list