我想使用serialport.readline(),因为它是一个阻塞调用,我得到的数据最后有0x0D 0x0A(CR LF).但是,我想要的是Hex String而不是Ascii表示.
例如,我与之通信的设备正在发送字节数组,如{0xff,0xff,0x45,0x0D,0x0A}.我想在我的程序中打印出来就像这样:0xff,0xff,0x45.Readline()请修剪LF和CR.
我虽然通过指定我想要读取的字节数来使用serialport.read(buff [] ...).但它不能很好地工作,因为如果我读得太快,一半的数组将是0x00,如果我读得太慢,那么com端口就会出现溢出.我不想丢失任何字节.
我试图将我从serialport.readline()获得的内容转换为字节数组,但我得到的十六进制字符串通常变为0x3f.代码是这样的:
var line = string.Join(",", mySerialPort.ReadLine().Select(c => ((Byte)c).ToString("X")).ToArray());
Run Code Online (Sandbox Code Playgroud)
我改变了几次编码(ASCII,UTF8,UNICODE),但仍然没有.
有没有办法将我从readline()获得的非Ascii字符串转换为字节数组?