将十六进制数据发送到串行端口?

时间:2013-06-06 11:56:04

标签: c++ serial-port hex

我有一个GPS连接到USB0,我可以完美地读取所有内容,但现在我正在尝试向其写入数据。它适用于发送和接收十六进制数据。我试图将数据发送到GPS。假设我想将0xB6 0x62发送到端口,我怎么能在C ++中执行它。我用过这个,但我不知道weatehr我是对还是错,有人可以帮助我

int main()
{
    unsigned char bytestosend[2] = {0xB5, 0x62};

    write(fd,&bytestosend,2);
}

当然我将端口打开到文件描述符fd。

1 个答案:

答案 0 :(得分:1)

基本上,你正在做的是正确的,因为你的GPS读取实际上是十六进制字节。但它也可以读取字符串编码的十六进制值,所以一定要确定。所以,根据你所说的,我会说你正确地写了它。

并且您没有说明如何打开串行端口,但要小心使用termios并正确设置连接,否则可能会出现问题。您不应该像标准文件一样打开端口。如果你还没有这样做,请好好阅读this