【问题标题】:Strange character square + 0101 in Python 3Python 3中的奇怪字符正方形+ 0101
【发布时间】:2019-01-15 17:28:53
【问题描述】:

我正在从连接到在 Ubuntu Core 上运行的 Raspberry 中的 i2c 端口的数字传感器收集温度,我正在使用以下代码:

import pigpio
import RPi.GPIO as GPIO

pi = pigpio.pi()

if not pi.connected:
    print("no pi")
    exit()

bus = 1
address = 0x5a
read_bytes = 9

while True:
    handle = pi.i2c_open(bus,address)
    count, data = pi.i2c_read_device(handle, read_bytes)

    pi.i2c_close(handle)
    pi.stop()

    print(count)
    print(data)

    exit()

但是,代码返回一个奇怪的温度字符,如下所示:

如何将此字符转换为可读的数字?这和 unicode 有点关系吗?

【问题讨论】:

标签: python python-3.x raspberry-pi python-unicode


【解决方案1】:

原因是您尝试打印的数据包含不可打印的 ascii 代码。您可以将它们转换为十六进制值,然后根据传感器的数据表对其进行解码:

print [ hex(x) for x in data]

【讨论】:

    【解决方案2】:

    它可能比这更广泛。由于您正在读取原始字节,因此能够打印数据完全取决于这些字节的编码方式。我的建议是使用hex(x) 将它们转换为十六进制,然后打印出来。毕竟,我们处理的是bytearray 类型!在此处发布该图片,我们可能会为您提供更多帮助!

    检查输出:

    print ([int(x) for x in data])
    print ([hex(x) for x in data])
    

    【讨论】:

      猜你喜欢
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多