Я пытаюсь управлять сервоприводами из кода C++ на Odroid-U2. У меня есть сервопривод SSC-32 от LynxMotion, подключенный к Odroid, используя USB-последовательный шнур.Проблемы с интерфейсом USB для последовательной связи для UBUNTU C
Простые последовательные команды управляют сервоприводами, такими как «#n Puuu», за которым следует возврат каретки, где n = номер штыря для сервопривода и uuu = ширина импульса. Я могу контролировать сервомашины при использовании PUTTY от Odroid, но у меня возникли проблемы с использованием кода C++ для управления сервомоторами. Например, в моем коде я делаю следующее:
fstream f;
f.open("/dev/ttyUSB0");
f << "#0 P600\r";
f.close();
В свое время я был в состоянии запустить этот код и он пошевелил сервопривод надлежащим образом, но теперь терминал застревает и висит до сих пор, когда я пытаюсь запустить этот код. Я сузил проблему до строки f.open ("/ dev/ttyUSB0"), которая предотвращает запуск кода. Я предполагаю, что мне нужно каким-то образом настроить порт USB. Я знаю, что мне нужна скорость 115200, и установите ее соответствующим образом, но я вроде как Ubuntu n00b, поэтому я не уверен, какие другие типы конфигураций мне нужны.
Моей версией Linux является Linaro 12.11.
Когда я тип Запущенного, конфигурации не по умолчанию набора кажется:
speed 115200 baud; line = 0;
-brkint ixoff -imaxbel
-iexten
Это право, и вы можете получить дополнительную информацию об этом API, просмотрев Руководство по серийному программированию для операционных систем Posix: http://www.cmrr.umn.edu/~strupp/serial.html – Preston
Итак, я думаю, мой код на C++ должен работать раньше, так как PUTTY был открыт одновременно и, вероятно, настроил порт USB. Похоже, у меня есть еще несколько исследований. –
Он работает! Благодаря! –