Ubuntu中使用C++将数据从串口读取到USB

Zey*_*yad 4 c++ ubuntu gps serial-port usbserial

我有一个带有串行端口的 GPS,它有一条从串行端口到 USB 的传输电缆。它通过USB连接到笔记本电脑,并以十六进制传输数据。我想在 Ubuntu 上的 C++ 代码中使用这些数据。我有什么想法可以从哪里开始,以及如何设法读取数据?

Mat*_*son 5

首先打开一个文件(fstream、FILE * 或操作系统句柄)到“/dev/ttySn”,其中n是设备号,然后读取。

#include <string>
#include <fstream>
#include <iostream>

std::string str; 
std::fstream f; 
f.open("/dev/ttyS0"); 
while (f >> str)
{
   std::cout << str;
}
Run Code Online (Sandbox Code Playgroud)

这应该“回显”出 ttyS0 的内容 - 这当然可能是您设备的“错误”端口,但如果您知道它连接的位置,那么应该可以完成这项工作。您可能还需要设置端口的配置。例如,使用stty命令 - baudrate 将是最重要的,因此类似的命令stty -F /dev/ttyS0 19200会将波特率(实际上是比特率)设置为每秒 19200 位。大多数其他参数可能没问题。