Я реализую RS485 на платформе разработки рук с использованием последовательного порта и gpio для включения данных.Опрос Linux на конце серийной передачи
Я устанавливаю передачу данных на высокий уровень перед отправкой, и я хочу, чтобы она была установлена на низком уровне после завершения передачи.
Это может быть сделано просто написав:
//fd = open("/dev/ttyO2", ...);
DataEnable.Set(true);
write(fd, data, datalen);
tcdrain(fd); //Wait until all data is sent
DataEnable.Set(false);
Я хотел изменить от блокирующего режима в неблокируемый и использовании опрос с дескриптором. Но я не вижу никакого события опроса, соответствующего «полной передаче».
Как я могу получить уведомление, когда все данные были отправлены?
система: Язык: C++ Совет: BeagleBone Black
Вы действительно не хотите этого делать в пользовательском пространстве. Если драйвер последовательного порта не поддерживает ** TIOCSRS485 ** ioctl, то улучшите этот драйвер, выполнив его. См. Http://stackoverflow.com/questions/25250731/automatically-changing-rts-for-rs-485-communication/25253003#25253003 – sawdust