GPS デバイスとの通信にシリアル プログラミングを使用しています。 GPS デバイスとの通信にバイナリ プロトコルを使用しています。デバイスに書き込むときに、1秒ごとにデータのストリームを受信するように機能します。私の問題は、このデータをポーリングして印刷すると、HEX データではなく ASCII 文字を受け取ることです。解析できるように、16 進データを表示する必要があります。これは私が書いたコードです
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);
}
もちろん、ポートは開いていて、設定は構成されていますが、私の問題は、データが16進数で表示されないため、解析できないことです。理解できない文字しか取得しません