我从我的MCU通过串行端口将数据0、1、2、3、4、5 .... 254,255、1、2、3、4 ...发送到PC。我尝试阅读(在Python中)并将其绘制。我将数据保存到列表中,希望以十六进制或十进制格式显示值,但是在资源管理器中我什至看不到它们-我缺少了什么?您可以看到var资源管理器,其中的读取值保存在y
def readFromMCU(i):
y.pop(0)
y.append((ser.read()))
x.pop(0)
x.append(x[-1]+1) # just increment x axis
ax1.clear()
ax1.plot(x, y)
答案 0 :(得分:0)
我无法确切地说出您的概况,但这也许会有所帮助。我现在正在我的PC上运行它。我正在捕获离散发送的文件,而不是正在进行的数据流,但是出于这个目的,我认为差异可以忽略不计。
def collect_data(file_name):
print(' ', file=sys.stdout);
print('Writing ' + file_name, file=sys.stdout)
ln = ser.readlines()
with open(file_name, 'w') as f:
for s in ln:
f.write(str(s.decode('utf8')))
# ...and DING :)
winsound.MessageBeep(-1)
with serial.Serial("COM1") as ser:
ser.timeout = 0.5;
print(ser.name + ' is open')
wait_time = 1;
# Main Loop monitors COM port and user key press,
# and displays a progress meter.
while True:
time.sleep(wait_time)
if ser.in_waiting > 0:
collect_data(file_name)
我已将其从更大的程序中删除了,因此以示例为例,不必运行代码...:)