UBUNTU C 的 USB 到串行通信问题
USB to Serial communication problems for UBUNTU C
我正在尝试从Odroid-U2上的C++代码控制伺服系统。 我使用USB串行线将LynxMotion的SSC-32伺服驱动器连接到Odroid。
简单的串行命令控制舵机,例如"#n Puuu",后跟回车,其中 n=舵机的引脚号,uuu=脉冲宽度。 从Odroid使用PUTTY时,我能够很好地控制舵机,但是在使用C++代码控制舵机时遇到了问题。 例如,在我的代码中,我执行以下操作:
fstream f;
f.open("/dev/ttyUSB0");
f << "#0 P600r";
f.close();
有一次,我能够运行此代码,并且它适当地摆动了伺服器,但是现在当我尝试运行此代码时,终端卡住了并挂起。 我将问题缩小到f.open("/dev/ttyUSB0"(行,该行阻止代码运行。 我假设我需要以某种方式配置 USB 端口。 我知道我需要 115200 的波特率,并相应地设置了它,但我有点像 Ubuntu n00b,所以我不确定我需要什么其他类型的配置。
我的Linux版本是Linaro 12.11。
当我键入stty时,设置的非默认配置似乎是:
speed 115200 baud; line = 0;
-brkint ixoff -imaxbel
-iexten
您不能依赖串行端口的默认设置(并且您不应该尝试使用 stty 在程序之外设置它们(。您必须将代码写入程序以正确设置串行端口。为此,您必须使用 tcsetattr/tcgetattr、cfsetspeed 等函数,请参阅 man termios。
此外,fstream 可能无法提供对要使用的正确 open(( 函数参数的访问,因为在 UNIX 上打开串行端口应该使用O_NOCTTY标志来完成。
相关文章:
- 通过TCP的PvP通信问题
- 与SPI NAND闪存(STM32L4,QSPI)的通信问题
- C++游戏中的 UDP 通信问题
- 与 QProcess 和 VS C++的实时通信出现问题
- 读取的通信设备类 (CDC) 问题
- 串行通信 - 我在将传入的字符数组转换为 int 时遇到问题
- 如果我得到CE_FRAME错误,com端口通信有什么问题
- 基本串行端口通信Visual Studio C++(在浏览现有示例中时遇到问题)
- std::线程通信问题
- MPI 全对多通信问题
- 创建文件() 串行通信问题
- C++串行通信问题
- UBUNTU C 的 USB 到串行通信问题
- 串行通信问题
- 与MPI-2单向通信同步单个int值的问题
- 同步MPI-2单向通信中的顺序问题
- QtSerialPort通信问题
- 如何解决TFTP客户端和服务器端通信中的小端到大端问题
- 通信b/w两个线程在一个公共的数据结构.设计问题
- visual c++ Socks5通信问题