Я пытаюсь программировать робота, который имеет motordrivers на определенные последовательные порты (т.е. ttyS9)Запись в последовательный порт в Linux
через cutecom (как шестнадцатеричный вход), я могу отправить следующий вход, который дает мне результат я ожидаю:
5aaa0700fffff000
Сейчас я пытаюсь добиться того же результата с помощью программы C, что делает следующее:
int port9 = open("/dev/ttyS9", O_RDWR | O_NONBLOCK);
char buff[17] = "5aaa0700fffff000";
write(port9, buff, 16);
Я также попытался инициализировать buff
с шестигранными значениями отдельно:
buff[0] = 0x5;
buff[1] = 0xa;
и т.д. и т.п.
Оба не работают. Является ли проблема в моем коде или в драйвере?
Скомпилировать, используя gcc, а затем запустить его с помощью sudo. Функция open также возвращает правильные значения (без ошибок), а также запись.
См. [Ask] и укажите [mcve]. И не запускайте такой код, как admin. – Olaf