首页 > 解决方案 > python串口通信

问题描述

这是我的串口通信代码

import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style


import serial
MCU = serial.Serial('COM35', 115200, timeout=.1)


import time
time.sleep(1) #give the connection a second to settle

while True:
     data = MCU.readline()
print(str(data))

但我正在输出

b'\x0b\x16 )6\x06\x07\x08X\x02\x16,' (这是 Hex+Ascii 值)

这是我的输入数据

uint8_t myBuf[]={11,22,32,41,54,6,7,8,88,2,22,44};

有人知道我在这里做错了什么吗?

标签: pythonpython-3.xpython-2.7serial-portmicrocontroller

解决方案


您希望输出的格式是什么?正如您所建议的,您所拥有的是正确的数据,但采用字节格式。例如,您可以将其作为 python 整数列表获取,如下所示(Python 3):

>>> list(data)
[11, 22, 32, 41, 54, 6, 7, 8, 88, 2, 22, 44]

struct模块也可能对您解码字节数据有用。

(我不能发表评论,对不起。)


推荐阅读