我正在使用串行编程与 GPS 设备通信我正在使用二进制协议与之通信。它的工作方式是在写入设备时每 1 秒接收一次数据流。我的问题是,当我轮询这些数据并将其打印出来时,我收到的是 ASCII 字符而不是 HEX 数据。我需要查看十六进制数据,以便解析它。这是我写的代码
int Open_UBX()
{
unsigned char PollPOSLLH[11] = {0xB5,0x62,0x06,0x01,0x03,0x00,0x01,0x02,0x01,0x0E,0x47};
write(fd,&PollPOSLLH,11);
}
int main(){
Open_UBX();
while (c!='q')
{
if (read(fd,&data,1)>0)
{
write(STDOUT_FILENO,&data,1); // if new data is available on the serial port, print it out
}
if (read(STDIN_FILENO,&c,1)>0)
{
write(STDOUT_FILENO,&c,1); // if new data is available on the console, send it to the serial port
}
}
close(fd);
return(0);
}
当然端口是打开的并且设置已配置但我的问题是数据没有出现十六进制所以我无法解析它我只得到我不明白的字符