Я реализую RS485 на плате для разработки рук, используя последовательный порт и gpio для включения данных.
Я устанавливаю высокий уровень разрешения данных перед отправкой и хочу, чтобы он был установлен на низкий уровень после завершения передачи.
Это можно сделать просто, написав:
//fd = open("/dev/ttyO2", ...);
DataEnable.Set(true);
write(fd, data, datalen);
tcdrain(fd); //Wait until all data is sent
DataEnable.Set(false);
Я хотел перейти с блокирующего режима на неблокирующий и использовать опрос с fd. Но я не вижу какого-либо события опроса, соответствующего «завершению передачи».
Как я могу получить уведомление, когда все данные будут отправлены?
Система: linux Язык: c++ Плата: BeagleBone Black