0

我正在使用 Python 3.3。

我从串行端口获取数据,得到的每个字节对应一个整数。(没有数字大于 255,所以没有多字节数字)。

我一直在尝试将其写入人类可读文本的文本文件中,所以我正在寻求帮助。

如果我从我的串口获得值 0b10000111,我如何让这个数字在我的文本文件中显示为“135”?这听起来像一个简单的任务,但我已经挣扎了很多!

我还想添加一个逗号来分隔值(字节)。

这是我一直在尝试的:

import sys
import serial

port = serial.Serial('COM4', 115200)
fileID = open('output.txt', 'a')

while(1):
    data = port.read(size=1)
    if data != 0:
        #MISSING SOME CONVERSION HERE... Tried a lot of things, 
        #but none have been correct.
        fileID.write(data)
        fileID.write(',')
4

2 回答 2

1

你知道的大小data是一,你感兴趣的只是第一个字节。首先,您需要将该字节转换为整数,然后再转换为字符串。

fileID.write(str(ord(data[0])))
于 2013-05-12T02:32:59.233 回答
0

它现在正在运行,我想与你们其他很棒的人分享代码:

import sys
import serial

port = serial.Serial('COM4', 115200, timeout=0)
data = b''

while(1):
    data = port.read()
    print(data)
    if data != b'':
        fileID = open('output.txt', 'a')
        fileID.write(str(ord(data)))
        fileID.write(',')
        fileID.close()

port.close()
于 2013-05-12T12:34:46.553 回答