Ich versuche, binäre Daten von einem seriellen Gerät in c auf Linux zu lesen. Das Problem ist, dass manchmal Zeichen im internen Puffer des Treibers vorhanden sind, aber das Abrufen (mit select (2)) meldet, dass das Gerät nicht zum Lesen bereit ist.Uart Puffer wird nicht gelesen
Ich habe gelesen und las den Mann von termios und alle verwandten Mann und suchte über das Internet. Ich glaube, ich habe alle Flags korrekt gesetzt (nämlich VTIME, VMIN) und ICANON unset. Ich habe versucht, auch die Funktion "tcmakeraw", aber es hat das Problem nicht gelöst.
Haben Sie irgendwelche Ideen, was ich tun soll?
Mit freundlichen Grüßen & Vielen Dank im Voraus Yannay
Den Code anhängen ... – BlueDog
Erinnern Sie sich daran, 'readfds' vor * jedem * Aufruf von' select() 'zu füllen? – caf
Welche Art von serieller Schnittstelle? (d. h. ein echter 16550, ein 16550 Klon, ein USB Konverter, Bluetooth, Irda, ...) –