Python 如何使用pyserial和picocom打印十六进制缓冲区?
我试图通过USB/串行端口[ttyACM*/COM*]读取协议。当设备返回响应时,我应该接收具有以下模式的帧: |FF | 15 | 44 | 7D | 00 | 88 | 00 | 0D | 00 | 00 | 86 | 00 | 76 | 00 | 00 | 00 | 40 | 00 | A7 | FE |(21个六字节) 我必须使用的配置如下:Python 如何使用pyserial和picocom打印十六进制缓冲区?,python,serial-port,pyserial,Python,Serial Port,Pyserial,我试图通过USB/串行端口[ttyACM*/COM*]读取协议。当设备返回响应时,我应该接收具有以下模式的帧: |FF | 15 | 44 | 7D | 00 | 88 | 00 | 0D | 00 | 00 | 86 | 00 | 76 | 00 | 00 | 00 | 40 | 00 | A7 | FE |(21个六字节) 我必须使用的配置如下: 波特率:2400 数据位:8 平价:无 停止位:1 握手:无 现在,当我尝试在Linux上使用CuteCom或在Windows上使用HTerm
- 波特率:2400
- 数据位:8
- 平价:无
- 停止位:1
- 握手:无
ser=serial.serial(“/dev/ttyACM0”,2400,超时=0.3,字节大小=8,奇偶校验=N',rtscts=0)
塞尔克洛斯()
爵士公开赛()
弗拉什爵士()
ser.write(b'\xff\x09\x53\x83\x00\x00\x00\xdf\xfe')
尽管如此:
s=ser.read_直到(b'\xfe')
弗拉什爵士()
印刷品
时间。睡眠(3.0)
Python:
帧响应:b'\xff\x15D\x82\x00\x88\x00\x00\x81\x00\x82\x00y\x00\x1f\x00\x00@\x00>\xfe'(16个十六字节?)
这里我得到了一些不同大小的十六进制数字和帧中间的奇怪字符。编辑:(我意识到“奇怪的字符”实际上是基于接收到的十六进制代码的ASCII字符,我如何才能将这个缓冲区更改为仅十六进制?)
知道为什么Python和Picocom会出现这种情况,以及在使用这些工具时应该如何阅读框架吗? 编辑:我试着用ssterm来读取序列中的十六进制字符,结果成功了,为什么?如何使用pyserial使它与picocom和python一起工作 ssterm:帧响应:ff 15 44 82 00 88 00 00 81 00 82 00 79 00 1f 00 40 00 3e fe(21个十六字节)结果表明python只是方便地将十六进制字符更改为ASCII。但该值保持不变,因此帧可以正常使用。而picocom忽略了空字符