我正在尝试从 Odroid-U2 上的 C++ 代码控制伺服系统。我使用 USB 串行线将 LynxMotion 的 SSC-32 伺服驱动器连接到 Odroid。
简单的串行命令控制舵机,例如“#n Puuu”后跟回车,其中 n=舵机的引脚号,uuu=脉冲宽度。使用 Odroid 中的 PUTTY 时,我能够很好地控制伺服系统,但是在使用 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。
当我输入 stty 时,非默认配置集似乎是:
speed 115200 baud; line = 0;
-brkint ixoff -imaxbel
-iexten