我有一个带串口的 GPS,它有一条从串口到 USB 的传输线。它通过USB连接到笔记本电脑,并以十六进制传输数据。我想在 Ubuntu 上的 C++ 代码中使用这些数据。有什么想法可以从哪里开始,以及如何设法读取数据?
问问题
10466 次
2 回答
4
首先打开一个文件(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
命令 - baudrate 将是最重要的,所以类似的东西stty -F /dev/ttyS0 19200
会将波特率(实际上是比特率)设置为每秒 19200 位。大多数其他参数可能没问题。
于 2013-04-30T13:15:05.250 回答
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
forfstream
and#include iostream
forstring
andcout
. and 的命名空间fstream
是cout
.std
"
于 2016-11-15T12:49:10.883 回答