繁体   English   中英

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

[英]Read data from a serial port to USB in Ubuntu using C++

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

首先将文件(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位。 大多数其他参数可能还可以。

#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 fstreamfstream#include iostreamstringcout 。的命名空间fstreamcoutstd 。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM