如何解决如何在 i2c 总线中正确地将数据转换为欧姆,反之亦然?
我发现CalculatedDataNum[0x03] 的输出有一些小数。同时,DataNum[0x03] 不包括任何小数。接受 r1DataNum 和 r2DataNum 的参数用十六进制代码编写。如何在 i2c 总线中正确地将数据转换为欧姆,反之亦然?
#!/usr/bin/python3
# Get I2C bus
bus = smbus.SMBus(1)
r1 = int(r1)
# convert userInput of the [0x01] resistance values from Ohms to K Ohms
r1KiloOhms = r1 / 1000
# convert from K Ohms to dataNum
r1DataNum = (r1KiloOhms * 256) / 10
r2 = int(r2)
# convert userInput of the [0x03] resistance values from Ohms to K Ohms
r2KiloOhms = r2 / 1000
#r2KiloOhms = r2 / 1000
# convert from K Ohms to dataNum
r2DataNum = (r2KiloOhms * 256) / 10
# send the instructions to the bus
bus.write_i2c_block_data(0x2c,0x01,[int(r1DataNum)])
bus.write_i2c_block_data(0x2c,0x03,[int(r2DataNum)])
# Read data back from 0x01
data1 = bus.read_byte_data(0x2C,0x01)
# Read data back from 0x03
data2 = bus.read_byte_data(0x2C,0x03)
# convert dataNum to K Ohms
res_1 = (data1 / 256.0 ) * 10.0
res_2 = (data2 / 256.0 ) * 10.0
# convert the K Ohms into Ohms
ohm_1 = res_1 * 1000 # ohm format
ohm_2 = res_2 * 1000 # ohm format
htmlFormat = """ <html>
<head>
<title>setResistanceValue</title>
</head>
<body>
<p>Actual Resistance Values</p>
<p>CalculatedDataNum[0x03]: {r2DataNum}</p>
<br/>
<p>DataNum[0x03]: {data2}</p>
<p>Resistance of [0x01]: {ohm_1} Ohms</p>
<p>Resistance of [0x03]: {ohm_2} Ohms</p>
<br/>
</body>
</html>
"""
print(htmlFormat.format(**locals()))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。