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

时间:2013-04-30 13:12:46

标签: c++ ubuntu gps serial-port usbserial

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

2 个答案:

答案 0 :(得分:3)

首先打开文件(fstream,FILE *或OS句柄)到“/ 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;
}

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

答案 1 :(得分:0)

#include <iostream>
#include <fstream>

int main () {
    std::string str;
    std::fstream f;
    f.open("/dev/ttyS0");
    while (f >> str)
    {
        std::cout << str;
    }
}

这是一个工作片段。当我遇到这个问题时,我很难找到所需的include语句和正确的命名空间。

这个答案基于Mats Petersson的回答

编辑:这对Mats Petersson的答案更合适。评论可以是:

  #include fstream的{​​p>&#34; fstream#include iostream的{​​{1}}   和stringcoutfstream的命名空间为cout。&#34;

相关问题